Функции: useRouter | Next.js

Если вы хотите получить доступ к объекту router внутри любого функционального компонента в вашем приложении, вы можете использовать хук useRouter , взгляните на следующий пример:

 import { useRouter } from 'next/ маршрутизатор
 
функция ActiveLink ({ дочерние элементы, href }) {
  постоянный маршрутизатор = useRouter()
  постоянный стиль = {
    полеПраво: 10,
    цвет: router.asPath === href ? «красный»: «черный»,
  }
 
  const handleClick = (e) => {
    e.preventDefault()
    router.push(href)
  }
 
  возвращаться (
    
      {дети}
    
  )
}
 
экспорт ActiveLink 9 по умолчанию0009 

useRouter — это React Hook, то есть его нельзя использовать с классами. Вы можете либо использовать withRouter, либо обернуть свой класс в функциональный компонент.

Ниже приведено определение объекта router , возвращенного как

useRouter , так и withRouter :

  • pathname : String - Путь для текущего файла маршрута, следующего за /pages . Следовательно, basePath , языковой стандарт и косая черта ( trailingSlash: true ) не включены.
  • запрос : Объект — Строка запроса преобразована в объект, включая параметры динамического маршрута. Это будет пустой объект во время предварительного рендеринга, если страница не использует рендеринг на стороне сервера. По умолчанию {}
  • asPath : String — Путь, отображаемый в браузере, включая параметры поиска и с учетом завершающей косой черты
    9Конфигурация 0004. basePath и языковой стандарт не включены.
  • isFallback : логическое значение — находится ли текущая страница в резервном режиме.
  • basePath : Строка — активный basePath (если включен).
  • языковой стандарт : Строка — активный языковой стандарт (если включен).
  • локали : String[] — Все поддерживаемые локали (если включены).
  • по умолчаниюЯзык
    : String — Текущая локаль по умолчанию (если включена).
  • domainLocales : Array<{domain, defaultLocale, locales}> — любые настроенные локали домена.
  • isReady : boolean — Обновляются ли поля маршрутизатора на стороне клиента и готовы ли к использованию. Следует использовать только внутри методов useEffect , а не для условного рендеринга на сервере. См. соответствующие документы для примера использования с автоматически статически оптимизированными страницами
  • isPreview : boolean — находится ли приложение в данный момент в режиме предварительного просмотра.

Использование поля asPath может привести к несоответствию между клиентом и сервером, если страница визуализируется с использованием рендеринга на стороне сервера или автоматической статической оптимизации. Не используйте asPath до тех пор, пока поле isReady не станет равным true .

Следующие методы включены в маршрутизатор :

router.push

Примеры
  • Использование маршрутизатора

Обрабатывает переходы на стороне клиента. Этот метод полезен в случаях, когда

next/link недостаточно.

 router.push(url, as, options) 
  • url : UrlObject | Строка — URL-адрес для перехода (см. документацию модуля URL-адреса Node.JS для свойств UrlObject ).
  • как : UrlObject | Строка — необязательный декоратор для пути, который будет отображаться в адресной строке браузера. До Next.js 9.5.3 это использовалось для динамических маршрутов.
  • опции - Дополнительный объект со следующими опциями конфигурации:
    • scroll — необязательное логическое значение, управляет прокруткой вверх страницы после навигации.
      По умолчанию правда
    • мелкий : обновить путь к текущей странице без повторного запуска getStaticProps , getServerSideProps или getInitialProps . По умолчанию ложь
    • локаль — необязательная строка, указывает локаль новой страницы

Вам не нужно использовать router.push для внешних URL-адресов. window.location лучше подходит для таких случаев.

Переход к pages/about.js , который является предопределенным маршрутом:

 import { useRouter } from 'next/router'
 
функция экспорта по умолчанию Page() {
  постоянный маршрутизатор = useRouter()
 
  возвращаться (
    

Навигация по страницам/post/[pid].js , который является динамическим маршрутом:

 import { useRouter } from 'next/router'
 
функция экспорта по умолчанию Page() {
  постоянный маршрутизатор = useRouter()
 
  возвращаться (
    

Перенаправление пользователя на

pages/login.js , полезно для страниц за аутентификацией:

 import {useEffect} from 'react'
импортировать {useRouter} из 'следующего/маршрутизатора'
 
// Здесь вы должны получить и вернуть пользователя
const useUser = () => ({пользователь: null, загрузка: false})
 
функция экспорта по умолчанию Page() {
  const {пользователь, загрузка} = useUser()
  постоянный маршрутизатор = useRouter()
 
  использоватьЭффект(() => {
    если (!(пользователь || загрузка)) {
      router.push('/логин')
    }
  }, [пользователь, загрузка])
 
  вернуть 

Перенаправление...

}
Сброс состояния после навигации

При переходе на ту же страницу в Next.js состояние страницы

не будет сброшено по умолчанию, так как React не отключается, пока не изменится родительский компонент.

 импортировать ссылку из 'далее/ссылка'
импортировать {useState} из «реагировать»
импортировать {useRouter} из 'следующего/маршрутизатора'
 
функция экспорта по умолчанию Страница (реквизит) {
  постоянный маршрутизатор = useRouter()
  const [количество, setCount] = useState (0)
  возвращаться (
    <дел>
       

Страница: {router.

query.slug}

Количество: {count}

один два
) }

В приведенном выше примере переход между

/один и /два не приведет к сбросу счетчика. useState сохраняется между рендерингами, потому что компонент React верхнего уровня, Page , один и тот же.

Если вы не хотите такого поведения, у вас есть несколько вариантов:

  • Вручную убедитесь, что каждое состояние обновляется с помощью useEffect . В приведенном выше примере это может выглядеть так:

    .
     useEffect(() => {
      установитьКоличество (0)
    }, [router.query.slug]) 
  • Используйте ключ React , чтобы указать React перемонтировать компонент. Чтобы сделать это для всех страниц, вы можете использовать пользовательское приложение:

    .
     импорт {useRouter} из «следующего/маршрутизатора»
     
    функция экспорта по умолчанию MyApp({ Component, pageProps }) {
      постоянный маршрутизатор = useRouter()
      return <Ключ компонента={router.asPath} {...pageProps} />
    } 
С объектом URL

Вы можете использовать объект URL так же, как вы можете использовать его для next/link . Работает как для url и как параметры :

 import {useRouter} from 'next/router'
 
функция экспорта по умолчанию ReadMore({ post }) {
  постоянный маршрутизатор = useRouter()
 
  возвращаться (
    <кнопка
      тип = "кнопка"
      onClick={() =>
{ маршрутизатор.push({ путь: '/post/[pid]', запрос: {pid: post.id}, }) }} > Нажми сюда, чтобы прочитать больше ) }

router.replace

Аналогично replace prop in next/link , router. replace предотвратит добавление новой записи URL в стек истории .

 router.replace(url, as, options) 
  • API для router.replace точно такой же, как API для router.push .

Взгляните на следующий пример:

 import { useRouter } from 'next/router'
 
функция экспорта по умолчанию Page() {
  постоянный маршрутизатор = useRouter()
 
  возвращаться (
    

router.prefetch

Предварительная выборка страниц для более быстрого перехода на стороне клиента. Этот метод полезен только для навигации без next/link , так как next/link автоматически обеспечивает предварительную загрузку страниц.

Это функция только для производства. Next.js не выполняет предварительную выборку страниц в разработке.

 router. prefetch(url, as, options) 
  • url — URL-адрес для предварительной выборки, включая явные маршруты (например, /dashboard ) и динамические маршруты (например, /product/[id] )
  • как — Дополнительный декоратор для URL . До Next.js 9.5.3 это использовалось для предварительной выборки динамических маршрутов.
  • options - Необязательный объект со следующими разрешенными полями:
    • локаль - позволяет указать локаль, отличную от активной. Если false , url должен включать локаль, так как активная локаль не будет использоваться.

Допустим, у вас есть страница входа, и после входа вы перенаправляете пользователя на панель инструментов. В этом случае мы можем предварительно загрузить панель мониторинга, чтобы сделать переход более быстрым, как в следующем примере:

 import { useCallback, useEffect } from 'react'
импортировать {useRouter} из 'следующего/маршрутизатора'
 
функция экспорта по умолчанию Login() {
  постоянный маршрутизатор = useRouter()
  const handleSubmit = useCallback((e) => {
    e. preventDefault()
 
    fetch('/api/логин', {
      метод: «ПОСТ»,
      заголовки: {'Content-Type': 'application/json'},
      тело: JSON.stringify({
        /* Данные формы */
      }),
    }).then((рез) => {
      // Делаем быстрый переход на стороне клиента к уже загруженной странице панели
      if (res.ok) router.push('/dashboard')
    })
  }, [])
 
  использоватьЭффект(() => {
    // Предварительная выборка страницы панели инструментов
    router.prefetch('/приборная панель')
  }, [маршрутизатор])
 
  возвращаться (
    <форма onSubmit={handleSubmit}>
      {/* Поля формы */}
      
    
  )
} 

router.beforePopState

В некоторых случаях (например, при использовании пользовательского сервера) вы можете захотеть прослушать всплывающее состояние и сделать что-то до того, как маршрутизатор отреагирует на него.

 router.beforePopState(cb) 
  • cb — функция, запускаемая при входящих событиях popstate . Функция получает состояние события в виде объекта со следующими реквизитами:
    • url : String - маршрут для нового состояния. Обычно это имя стр.
    • как : Строка - URL-адрес, который будет отображаться в браузере
    • параметры : Объект - Дополнительные параметры, отправленные router.push

Если cb возвращает false , маршрутизатор Next.js не будет обрабатывать popstate , и в этом случае ответственность за его обработку лежит на вас. См. Отключение маршрутизации файловой системы.

Вы можете использовать beforePopState для управления запросом или принудительного обновления SSR, как в следующем примере:

 импорт {useEffect} из «реагировать»
импортировать {useRouter} из 'следующего/маршрутизатора'
 
функция экспорта по умолчанию Page() {
  постоянный маршрутизатор = useRouter()
 
  использоватьЭффект(() => {
    router. beforePopState(({ url, as, options }) => {
      // Я хочу разрешить только эти два маршрута!
      если (как !== '/' && как !== '/другое') {
        // Пусть SSR отображает плохие маршруты как 404.
        window.location.href = как
        вернуть ложь
      }
 
      вернуть истину
    })
  }, [маршрутизатор])
 
  вернуться 

Добро пожаловать на страницу

}

router.back

Перейти назад в истории. Эквивалентно нажатию кнопки «Назад» в браузере. Он выполняет window.history.back() .

 импорт {useRouter} из 'следующего/маршрутизатора'
 
функция экспорта по умолчанию Page() {
  постоянный маршрутизатор = useRouter()
 
  возвращаться (
    

router.reload

Обновить текущий URL-адрес. Эквивалентно нажатию кнопки обновления в браузере. Он выполняет window.location.reload() .

 импорт {useRouter} из 'следующего/маршрутизатора'
 
функция экспорта по умолчанию Page() {
  постоянный маршрутизатор = useRouter()
 
  возвращаться (
    

router.events

Примеры
  • С индикатором загрузки страницы

Вы можете прослушивать различные события, происходящие внутри маршрутизатора Next.js. Вот список поддерживаемых событий:

  • routeChangeStart(url, {мелкий}) — срабатывает, когда маршрут начинает меняться
  • routeChangeComplete(url, {мелкий}) — срабатывает при полном изменении маршрута
  • routeChangeError(err, url, {mellow}) — срабатывает при ошибке при изменении маршрута или отмене загрузки маршрута
    • err.cancelled — Указывает, была ли навигация отменена
  • beforeHistoryChange(url, {мелко}) - Срабатывает перед изменением истории браузера
  • hashChangeStart(url, {мелкий}) — срабатывает, когда изменится хэш, но не страница
  • hashChangeComplete(url, {мелкий}) — срабатывает, когда изменился хеш, но не страница

Полезно знать : здесь url — это URL-адрес, отображаемый в браузере, включая basePath .

Например, для прослушивания события маршрутизатора routeChangeStart , откройте или создайте pages/_app.js и подпишитесь на событие, например:

 import {useEffect} from 'react'
импортировать {useRouter} из 'следующего/маршрутизатора'
 
функция экспорта по умолчанию MyApp({ Component, pageProps }) {
  постоянный маршрутизатор = useRouter()
 
  использоватьЭффект(() => {
    const handleRouteChange = (url, {мелко}) => {
      console.log(
        `Приложение меняется на ${url} ${
          мелкий ? 'с' : 'без'
        } неглубокая маршрутизация`
      )
    }
 
    router.events.on('routeChangeStart', handleRouteChange)
 
    // Если компонент размонтирован, отписаться
    // из события методом `off`:
    возврат () => {
      router.events.off('routeChangeStart', handleRouteChange)
    }
  }, [маршрутизатор])
 
  вернуть <Компонент {...pageProps} />
} 

В этом примере мы используем пользовательское приложение ( pages/_app. js ), чтобы подписаться на событие, потому что оно не отключается при навигации по страницам, но вы можете подписаться на события маршрутизатора в любом компоненте вашего приложения.

События маршрутизатора должны регистрироваться при монтировании компонента (useEffect или componentDidMount / componentWillUnmount) или в обязательном порядке при возникновении события.

Если загрузка маршрута отменена (например, путем быстрого последовательного нажатия двух ссылок), routeChangeError сработает. И переданный err будет содержать свойство canceled , установленное на true , как в следующем примере:

 import { useEffect } from 'react'
импортировать {useRouter} из 'следующего/маршрутизатора'
 
функция экспорта по умолчанию MyApp({ Component, pageProps }) {
  постоянный маршрутизатор = useRouter()
 
  использоватьЭффект(() => {
    const handleRouteChangeError = (ошибка, URL) => {
      если (ошибка отменена) {
        console. log(`Маршрут к ${url} был отменен!`)
      }
    }
 
    router.events.on('routeChangeError', handleRouteChangeError)
 
    // Если компонент размонтирован, отписаться
    // из события методом `off`:
    возврат () => {
      router.events.off('routeChangeError', handleRouteChangeError)
    }
  }, [маршрутизатор])
 
  вернуть <Компонент {...pageProps} />
} 

Некоторые методы, доступные на объекте маршрутизатора , возвращают обещание. Если у вас включено правило ESLint без плавающих обещаний, подумайте об отключении его либо глобально, либо для затронутой строки.

Если вашему приложению требуется это правило, вы должны либо аннулировать промис, либо использовать асинхронную функцию, ожидание промиса, а затем аннулировать вызов функции. Это неприменимо, когда метод вызывается из onClick обработчик .

Затронутые методы:

  • router.push
  • маршрутизатор. заменить
  • router.prefetch

Возможные решения

 import {useEffect} из 'React'
импортировать {useRouter} из 'следующего/маршрутизатора'
 
// Здесь вы должны получить и вернуть пользователя
const useUser = () => ({пользователь: null, загрузка: false})
 
функция экспорта по умолчанию Page() {
  const {пользователь, загрузка} = useUser()
  постоянный маршрутизатор = useRouter()
 
  использоватьЭффект(() => {
    // отключить линтинг на следующей строке — это самое чистое решение
    // eslint-disable-next-line без плавающих обещаний
    router.push('/логин')
 
    // аннулировать промис, возвращенный router.push
    если (!(пользователь || загрузка)) {
      недействительным router.push('/логин')
    }
    // или используйте асинхронную функцию, ждите промиса, затем аннулируйте вызов функции
    асинхронная функция handleRouteChange() {
      если (!(пользователь || загрузка)) {
        ожидайте router.push('/логин')
      }
    }
    недействительный дескрипторRouteChange()
  }, [пользователь, загрузка])
 
  вернуть 

Перенаправление. ..

}

Если useRouter вам не подходит, withRouter также может добавить тот же объект router к любому компоненту.

Использование

 import { withRouter } from 'next/router'
 
функция Страница({маршрутизатор}) {
  вернуть 

{router.pathname}

} export default withRouter(Page)

TypeScript

Чтобы использовать компоненты класса с withRouter , компонент должен принять поддержку маршрутизатора:

 import React from 'react'
импортировать {withRouter, NextRouter} из 'следующего/маршрутизатора'
 
интерфейс WithRouterProps {
  маршрутизатор: NextRouter
}
 
интерфейс MyComponentProps расширяет WithRouterProps {}
 
класс MyComponent расширяет React.Component {
  оказывать() {
    вернуть 

{this.props.router.pathname}

} } экспорт по умолчанию с маршрутизатором (MyComponent)

Проблемы с перенаправлением на новую страницу с помощью window.

location.href Проблемы с перенаправлением на новую страницу с помощью window.location.href

Большинство ответов, связанных с вашими вопросами


codeigniter
  • Функция вызова в контроллере из маршрутов
  • $_REQUEST не работает в codeigniter
  • Изменение стиля значка в соответствии со статусом
  • Класс проверки сборки Codeigniter для ваших нужд
  • 403 Запрещено У вас нет прав доступа к /mytesting/< на этом сервере. ОШИБКА
  • извлечь значения их типа из result_array()
  • Маршрутизация Codeigniter
  • Нормализация, список категорий и воспламенитель кода
  • Как использовать таблицу сеансов в зажигателе кода
  • Codeigniter: как передать несколько входных данных с несколькими одинаковыми именами?
joomla
  • Как сделать так, чтобы элементы цикла foreach отображались более чем в одном столбце?
  • Перенаправление административного компонента Joomla не работает?
  • Плагин Joomla для запуска другого кода, если пользователь вошел в систему
  • Что означает #__ в начале имени таблицы в запросе Joomla mysql?
  • Тип формы пользовательского поля не требуется для сохранения в Joomla 2. 5
  • странный класс с вложенным {} (PHP)
  • почему слайдер не работает с этим плагином G+ Feed?
  • Как ускорить загрузку сайта Joomla+VirtueMart?
  • Изменение темы Joomla
  • Создать пользовательский модуль с javascript и загрузить javascript в нижний колонтитул
laravel
  • Laravel Blade как использовать оператор if для нулевого или пустого
  • Laravel 4 Eloquent возвращает неправильный идентификатор
  • Как абстрактный класс Model в laravel обрабатывает вызовы статических динамических методов, таких как «::find()», «::where()» и т. д.
  • Вызов функции-члена createToken() при нулевом значении?
  • Область запроса Laravel 5. 2 для полиморфных отношений
  • Laravel: отправка данных контроллеру через AJAX без формы
  • Как получить список всех сеансов сервера в laravel?
  • laravel 5.4: отправка электронной почты с локального хоста не работает
  • не удалось загрузить поток cafile: `C:\xampp\apache\bin\curl-ca-bundle.crt'
  • Множественный приоритет оператора WHERE() в Laravel

счет:0

На самом деле вы ничего не отправляете, поэтому просто используйте тег кнопки и избавьтесь от возвращаемого значения. Onclick должен быть только location="something".

 <кнопка>
    Иди развлекайся

 

Подробнее Ответить
  • Страница Php (SF2) не обновляется с новым кодом
  • Как открыть новое окно с target='_blank' ? Мой код не работает
  • Перенаправление на новую страницу с сохранением исходного местоположения
  • Открыть новую страницу и выполнить javascript в той же ссылке href
  • Передача $_FILES или $_POST на новую страницу с PHP
  • Проблемы с часовым поясом при новой установке XAMPP с PHP 5. 3
  • перенаправление на новую страницу с почтовыми данными в Javascript
  • Как перенаправить URL-адрес старого сайта, который заканчивается на .html, на домашнюю страницу нового сайта
  • Расположение заголовка IE8 Php открывает новое окно
  • nginx: загрузить страницу 404, если местоположение не совпадает с заданным URL-адресом
  • Копирование html-страницы с помощью fopen и проверка новой страницы для поиска переменных сеанса
  • Мой вызов header() не перенаправляет на новую страницу
  • как создать PDF-файл с серией изображений, каждое из которых напечатано на новой странице, в один файл с помощью FPDF
  • Содержание TCPDF и проблемы с номерами страниц
  • Перенаправить категорию и все ее публикации на новый URL-адрес с помощью . htaccess
  • Граница вокруг страницы в PDF с MPDF
  • Опубликовать на странице Facebook с помощью PHP в качестве администратора страницы
  • Носитель страницы Typo3 (изображения) отсутствует после переноса на новый хост
  • переименование файла с помощью jquery и php из модального окна
  • Проблемы с меню аккордеона с использованием jquery и PHP для отображения «активных» ссылок и сохранения ползунка меню открытым на текущей странице
  • Отправка формы с расположением перенаправления, отличным от действия
  • Фильтрация результатов из БД с помощью Javascript, которая заставит DIV перезагрузить свое содержимое на основе новых аргументов
  • Новый массив из двух других массивов с одним общим ключом. Есть советы по оптимизации?
  • Общий хостинг и создание страниц с PHP
  • Проблемы сеанса PHP с SAFARI
  • Загрузить страницу с html/js с помощью AJAX
  • Как я могу перенаправить на страницу с паролем, но доступ к странице через URL невозможен?
  • Таблица стилей CSS не соединяется с моей целевой страницей HTML (не была загружена, поскольку ее тип MIME, «текст/html», не является «текст/css»)
  • Как опубликовать новый ответ на вопрос с помощью Google My Business API в PHP
  • Настройка обложки и последней страницы с mPDF
  • Отображение значений таблицы на странице Pdf с помощью TCPDF
  • загрузчик typeahead не работает с динамическими данными со страницы php
  • Проблемы с нежадным совпадением
  • Как автоматически входить в систему нового пользователя после регистрации в пользовательском провайдере в Silex?
  • prestashop-создать новую форму с помощью ajax onclick
  • Приложение Facebook успешно публикует информацию на странице, но сообщения не видны тем, кто не является разработчиком. Мне действительно нужно проверять приложение с 1 пользователем?
  • Vagrant VM с приложением laravel 4, права доступа к файлу mkdir() запрещены для новых папок и подкаталогов
  • Сохранение данных HABTM при одновременном создании новой записи в связанной таблице с помощью CakePHP
  • Jquery Post/AJAX — влияет ли закрытие окна с кодом на сценарий сервера?
  • Как получить реферер, платный/естественный и ключевые слова для текущего посетителя в PHP с новым Google Analytics?
  • Отправить форму с помощью тега привязки, чтобы открыть PDF-файл в новом окне
  • использовать htaccess для предотвращения вызова страницы, за исключением RewriteRule
  • Удаленное обновление статуса страницы с помощью PHP
  • Как использовать $. post для включения в запрос новой страницы
  • DDD Корень агрегата, как создать новые дочерние элементы агрегата с разными типами? Заводской метод?
  • Как создать страницу с двумя формами в Symfony?
  • Selenium с проблемами браузера PHP Firefox
  • Получить полный URL-адрес страницы, используя php с номером порта и https
  • Обработка действия по удалению базы данных на той же странице PHP с сообщением
  • как установить тайм-аут для загрузки страницы в Mink с драйвером Selenium 2?
Больше ответов с тем же ag
  • Доступ оболочки к сценариям PHP на локальном хосте?
  • password_verify Всегда возвращает False, даже если используются правильные переменные
  • Использовать два объекта с одинаковыми именами в symfony
  • Идентификация и визуализация роботов
  • «Подделка» (= имитация) запроса на удаленное взаимодействие AMFPHP
  • PHP — динамически расширять родительский класс с помощью статических методов
  • strtotime("следующий март")
  • Многомерный массив PHP — подсчет дубликатов и смешивание дубликатов с оригиналом
  • Почему файлы cookie отправляются только на http://www. example.com, а НЕ на http://example.com?
  • PHP-Downloadscript - ограничение загрузки не работает
  • загружать только текстовые файлы
  • PHP | Рассчитать оставшиеся дни, но с учетом високосных лет
  • Как возможна такая проблема: целое является нечисловым?
  • Symfony/VichUploaderBundle: удалить сущность
  • Неверный аргумент PHP указан в foreach
  • Используйте DomDocument для замены всех тегов заголовков на теги h5
  • Как использовать JWT SSO/автоматический вход в HumHub
  • Как сопоставить требуемые символы в случайном порядке с помощью регулярного выражения?
  • чтение нескольких файлов CSV
  • laravel 8 не запускает файл миграции в папке пакетов
  • Динамическое изменение содержимого вкладки
  • htaccess, если изображение не найдено, перейдите в другое место
  • PHP: регулярное выражение для сопоставления каждой строки
  • num_rows с подготовленным оператором возвращает 0 строк, когда эквивалентный нормальный запрос возвращает больше
  • Больше нельзя выполнить миграцию в Symfony с помощью ocramius/proxy-manager при миграции?
  • Проблема с передачей параметров с android на php
  • Форма электронной почты PHP — включить локально
  • JSONP и GET с обратными вызовами — нужна помощь в исправлении ошибок
  • Загрузка файлов и обеспечение их безопасности
  • preg_match(): Неизвестная функция модификатора php
  • Symfony 2. 8 с базой данных Oracle — слишком длинный идентификатор
  • Ajax Multiarray возвращает
  • Как установить лимит памяти и время ожидания выполнения для определенного IP-адреса с помощью php-fpm и nginx?
  • Чем отличаются эти два добавления массива?
  • Zend Engine возвращает ссылку на объект
  • отладка move_uploaded_file в cakephp
  • Найти и заменить с помощью QueryPath
  • Установить групповые политики для Windows — активный каталог из PHP
  • Цикл сценария оболочки из PHP не работает
  • Как создать uuid с 8 или 16 символами с помощью php?
  • Получение переменных отображается при перезаписи подкаталога, mod_rewrite
  • Codeception — невозможно сохранить и загрузить снимок сеанса в Firefox
  • Как отправить текущий URL-адрес с помощью ajax без перенаправления?
  • Символ UTF-8 в имени файла, URL-адрес ссылки возвращает ошибку 404
  • Как отобразить единицу измерения продукта на внешнем интерфейсе (веб-сайте) в Magento?
  • переменная пропускная способность через пагинацию лезвия
  • Рассчитать час и оплатить
  • Laravel 5: загружается ли Eloquent по умолчанию?
  • Скрипт загрузки PHP не работает при вызове через AJAX
  • Запуск SQLite 3 в MicroApache

Источник: stackoverflow.