- Laravel по-русски
- #1 04.07.2017 13:04:01
- новичок: Route::get не находит шаблон запроса
- #2 04.07.2017 14:40:38
- Re: новичок: Route::get не находит шаблон запроса
- #3 04.07.2017 16:08:56
- Re: новичок: Route::get не находит шаблон запроса
- #4 04.07.2017 16:29:55
- Re: новичок: Route::get не находит шаблон запроса
- #5 05.07.2017 08:44:25
- Re: новичок: Route::get не находит шаблон запроса
- #6 05.07.2017 10:37:45
- Re: новичок: Route::get не находит шаблон запроса
- #7 05.07.2017 10:41:53
- Re: новичок: Route::get не находит шаблон запроса
- #8 05.07.2017 10:56:25
- Re: новичок: Route::get не находит шаблон запроса
- #9 05.07.2017 12:35:08
- Re: новичок: Route::get не находит шаблон запроса
- #10 05.07.2017 12:47:09
- Re: новичок: Route::get не находит шаблон запроса
- #11 05.07.2017 12:56:10
- Re: новичок: Route::get не находит шаблон запроса
- #12 05.07.2017 13:00:13
- Re: новичок: Route::get не находит шаблон запроса
- #13 05.07.2017 13:45:37
- Re: новичок: Route::get не находит шаблон запроса
- #14 05.07.2017 13:47:56
- Re: новичок: Route::get не находит шаблон запроса
- #15 05.07.2017 13:59:20
- Re: новичок: Route::get не находит шаблон запроса
- #16 07.07.2017 00:49:48
- Re: новичок: Route::get не находит шаблон запроса
- #17 07.07.2017 08:26:55
- Re: новичок: Route::get не находит шаблон запроса
- #18 07.07.2017 08:33:50
- Re: новичок: Route::get не находит шаблон запроса
- #19 07.07.2017 09:22:29
- Re: новичок: Route::get не находит шаблон запроса
- #20 07.07.2017 11:46:04
- Re: новичок: Route::get не находит шаблон запроса
- #21 07.07.2017 12:02:16
- Re: новичок: Route::get не находит шаблон запроса
- #22 07.07.2017 12:06:31
- Re: новичок: Route::get не находит шаблон запроса
- #23 07.07.2017 12:07:41
- Re: новичок: Route::get не находит шаблон запроса
- #24 07.07.2017 12:42:01
- Re: новичок: Route::get не находит шаблон запроса
- #25 07.07.2017 12:55:40
- Re: новичок: Route::get не находит шаблон запроса
- Laravel Framework Russian Community
- Пролог
- Начало работы
- Основы архитектуры
- Основы
- Фронтенд
- Безопасность
- Копаем глубже
- База данных
- Eloquent ORM
- Тестирование
- Официальные пакеты
- Роутинг
- Простейший роутинг
- Файлы роутов по умолчанию
- Доступные методы роутера
- CSRF-защита
- Параметры роутов
- Обязательные параметры
- Необязательные параметры
- Ограничения регулярными выражениями
- Глобальные ограничения
- Именованные роуты
- Генерирование URL адресов для именованных роутов
- Группы роутов
- Посредники
- Пространства имён
- Доменный роутинг
- Префиксы роута
- Привязка модели роута
- Неявная привязка
- Изменение имени ключа
- Явная привязка
- Изменение логики принятия решения
- Подмена методов
- Получение текущего роута
Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
#1 04.07.2017 13:04:01
новичок: Route::get не находит шаблон запроса
только начал изучать Laravel (в частности, тут и тут ). Установлен apache2, php 5.6, Laravel 5.4
Пытаюсь в web.php поменять шаблон запроса
тоже все хорошо. А вот так
при вводе адреса localhost/hello пишет 404 URL не найден. Вот конфигурация apache’а
apache2ctl -M . и a2enmod rewrite на всякий случай выполнил. Что я делаю не так?
Не в сети 27.06.2017
#2 04.07.2017 14:40:38
Re: новичок: Route::get не находит шаблон запроса
нужен виртуальный хост + .htaccess в папке public
не забудь поправить servername, должно работать.
Не в сети 18.04.2016
#3 04.07.2017 16:08:56
Re: новичок: Route::get не находит шаблон запроса
без толку. По прежнему, срабатывает только на get(‘/’). А на ‘laravel.dev/hello’ 404 ошибка
Не в сети 27.06.2017
#4 04.07.2017 16:29:55
Re: новичок: Route::get не находит шаблон запроса
в error.log апач что-нибудь интересное пишет?
Не в сети 19.02.2015
#5 05.07.2017 08:44:25
Re: новичок: Route::get не находит шаблон запроса
вообще ничего не пишет
Не в сети 27.06.2017
#6 05.07.2017 10:37:45
Re: новичок: Route::get не находит шаблон запроса
Права на /storage и /bootstrap/cache меняли после установки? Порой, универсальное средство, чтобы «все заработало».
Не в сети 23.06.2015
#7 05.07.2017 10:41:53
Re: новичок: Route::get не находит шаблон запроса
обижаете :-)! без доступа на запись у меня вообще ничего не работало
Не в сети 27.06.2017
#8 05.07.2017 10:56:25
Re: новичок: Route::get не находит шаблон запроса
В /storage/logs/laravel.log есть что-нибудь?
Не в сети 23.06.2015
#9 05.07.2017 12:35:08
Re: новичок: Route::get не находит шаблон запроса
laravel.log отсутствует
route:list пишет
Изменено mokynis (05.07.2017 12:40:54)
Не в сети 27.06.2017
#10 05.07.2017 12:47:09
Re: новичок: Route::get не находит шаблон запроса
Ну да, еще бы работало 🙂
И что же это такое:
? 🙂
И куда же он должен этот «Привет» передать по-вашему? 🙂
Не в сети 23.06.2015
#11 05.07.2017 12:56:10
Re: новичок: Route::get не находит шаблон запроса
почему тогда передается? Или где-то (в public?) надо создать папку «hello»?
Изменено mokynis (05.07.2017 12:59:35)
Не в сети 27.06.2017
#12 05.07.2017 13:00:13
Re: новичок: Route::get не находит шаблон запроса
Не знаю. Если с возвратом представления все работает нормально, думаю, заморачиваться не стоит.
Не в сети 23.06.2015
#13 05.07.2017 13:45:37
Re: новичок: Route::get не находит шаблон запроса
И куда же он должен этот «Привет» передать по-вашему?
вывести в браузер конечно. из обработчика запроса можно много чего вернуть. тот же view превращается в текстовый ответ потому что содержит магический метод __toString(), специальной обработки для него там вроде нет. можно вернуть массив или Collection – тогда автоматом будет выставлен content-type: application/json и на результате будет сделать json_encode. в документации всё есть…
по-моему у mokynis просто не включен mod_rewrite в апаче. надо попробовать сделать a2enmod rewrite и выполнить systemctl restart apache2
ps. а не, прочитал первое сообщение, уже сделано. тогда не знаю…
Изменено constb (05.07.2017 13:46:30)
Не в сети 19.02.2015
#14 05.07.2017 13:47:56
Re: новичок: Route::get не находит шаблон запроса
стОит. Я сейчас курс слушаю (https://www.youtube.com/watch?v=R-oH8iTAhVc), там в web.php примерно такое (это я ооочень условно написал)
и во view test.blade.php
и вот тут-то у лектора все нормально срабатывает, а у меня «404»
Не в сети 27.06.2017
#15 05.07.2017 13:59:20
Re: новичок: Route::get не находит шаблон запроса
по-моему у mokynis просто не включен mod_rewrite в апаче.
на всякий случай посмотрел вывод phpinfo()
Loaded Modules
core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_env mod_filter mod_mime prefork mod_negotiation mod_php5 mod_rewrite mod_setenvif mod_status
Не в сети 27.06.2017
#16 07.07.2017 00:49:48
Re: новичок: Route::get не находит шаблон запроса
А если из предлагаемого по-умолчанию маршрута
Route::get(‘/’, function () <
return view(‘welcome’); >);
Сделать
‘/hello’
а view(). оставить?
если не поможет, ещё попробовать php artisan serve в консоли, и не закрывая консоль ещё раз открыть тот же маршрут
Не в сети 13.01.2017
#17 07.07.2017 08:26:55
Re: новичок: Route::get не находит шаблон запроса
Прошу у всех прощения за глупости, что писал в этой теме. Был неправ.
Не в сети 23.06.2015
#18 07.07.2017 08:33:50
Re: новичок: Route::get не находит шаблон запроса
Сделать
‘/hello’
а view(). оставить?
выдал экран ошибки программы
после php artisan serve та же самая ошибка. Может, Laravel какой-то неправильный (как пчелы у Вини-Пуха). Во всяком случае NetBeans подсвечивает его красным и пишет, что проект содержит ошибки. Напирмер, в /vendor/symfony/http-kernel/Tests/Fixtures/Controller/NullableController.php (хотя там, кажется, нечему быть неправильным)
Не в сети 27.06.2017
#19 07.07.2017 09:22:29
Re: новичок: Route::get не находит шаблон запроса
Может попробовать сделать composer update ? Мало ли, вдруг реально какой то фаил там «поврежден»
Изменено TrueKanonir (07.07.2017 09:24:11)
Не в сети 12.02.2016
#20 07.07.2017 11:46:04
Re: новичок: Route::get не находит шаблон запроса
увы. Ничего не дало. Это только мне с Laravel так не везет?
Не в сети 27.06.2017
#21 07.07.2017 12:02:16
Re: новичок: Route::get не находит шаблон запроса
NetBeans может быть старой версии и ничего не знать про пхп той версии, под которую написан ларавель (сейчас – 5.6). какой-нибудь синтаксис, который сейчас вполне рабочий, ему может казаться ошибкой…
увы. Ничего не дало. Это только мне с Laravel так не везет?
в чём-то определённо не везёт. возможно апач/пхп как-то не так установлены, всякое бывает… даже если на чистую систему из пакетов ставить, некоторые вещи надо отдельно настраивать бывает. судя по пхп 5.6, я подозреваю, стоит debian jessie…
Изменено constb (07.07.2017 12:03:57)
Не в сети 19.02.2015
#22 07.07.2017 12:06:31
Re: новичок: Route::get не находит шаблон запроса
NetBeans, скорее всего, подсвечивает конструкции вида *::class, там нужно перенастроить проверку синтаксиса на другую версию php, кажется. У меня что-то такое было. Вообще, посмотрите в сторону Atom 🙂
«Не везет», думаю, только Вам одному. Притом учтите, что никто здесь не видит, что там у Вас, на самом деле, происходит. Лично я бы (лично я!), совсем отчаявшись, попробовал бы снова сделать чистую установку с нуля, по какой-нибудь толковой инструкции. Как веб-сервера, так и фреймворка, тестируя каждый шаг.
Не в сети 23.06.2015
#23 07.07.2017 12:07:41
Re: новичок: Route::get не находит шаблон запроса
ещё мысль есть такая, что с правами могут быть косяки если файлы или папки создавались или правились из-под рута. насколько я понимаю всё работает от www-data (и апач и пхп) в папке /var/www ? это не очень хорошо, но можно попытаться сделать так:
– полный сброс прав и владельцев на всё что находится внутри, может поможет?…
Не в сети 19.02.2015
#24 07.07.2017 12:42:01
Re: новичок: Route::get не находит шаблон запроса
я подозреваю, стоит debian jessie…
именно так. И NetBeans 8.2 Вообще, не замечал косяков в связке apache-php. Я конечно, «не волшебник, я только учусь», но так, чтобы, как я понимаю, тривиальные функции Laravel не срабатывали, такой глюк уже, наверное, бы вылез
У меня в /var/www/ только одна ссылка на /home/ /web_projects и та нее и ее содержимое у всех полный доступ, так что не в нем дело
Изменено mokynis (07.07.2017 12:47:07)
Не в сети 27.06.2017
#25 07.07.2017 12:55:40
Re: новичок: Route::get не находит шаблон запроса
чтобы, как я понимаю, тривиальные функции Laravel не срабатывали, такой глюк уже, наверное, бы вылез
Источник
Laravel Framework Russian Community
Пролог
Начало работы
Основы архитектуры
Основы
Фронтенд
Безопасность
Копаем глубже
База данных
Eloquent ORM
Тестирование
Официальные пакеты
Роутинг
Простейший роутинг
В Laravel простейшие роуты принимают URI (путь) и функцию-замыкание, предоставляя очень простой и выразительный метод определения роутов:
Файлы роутов по умолчанию
Все роуты Laravel определены в файлах роутов, которые расположены в директории routes . Эти файлы автоматически загружаются фреймворком. В файле routes/web.php определены роуты для вашего web-интерфейса. Эти роуты входят в группу посредников web , которые обеспечивают такие возможности, как состояние сессии и CSRF-защита. Роуты из файла routes/api.php не сохраняют состояние приложения и входят в группу посредников api .
Для большинства приложений сначала определяются роуты в файле routes/web.php .
Доступные методы роутера
Роутер (маршрутизатор) позволяет регистрировать роуты для любого HTTP-запроса:
Иногда необходимо зарегистрировать роут, который отвечает на HTTP-запросы нескольких типов. Это можно сделать методом match . Или вы можете зарегистрировать роут, отвечающий на HTTP-запросы всех типов, с помощью метода any :
CSRF-защита
Все HTML-формы, ведущие к роутам POST , PUT или DELETE , которые определены в файле роутов web , должны иметь поле CSRF-токена. Иначе запрос будет отклонён. Подробнее о CSRF-защите читайте в документации CSRF:
Параметры роутов
Обязательные параметры
Разумеется, иногда вам может понадобиться захватить сегменты URI в вашем роуте. Например, если вам необходимо захватить ID пользователя из URL. Это можно сделать, определив параметры роута:
Вы можете определить сколько угодно параметров:
Параметры роута всегда заключаются в фигурные скобки <> и должны состоять из буквенных символов. Параметры роута не могут содержать символ — . Используйте вместо него подчёркивание ( _ ). Параметры роута внедряются в анонимные функции / контроллеры роута, основываясь на их порядке — названия аргументов анонимных функций / контроллеров не имеют значения.
Необязательные параметры
Иногда необходимо указать параметр роута, но при этом сделать его наличие необязательным. Это можно сделать, поместив знак вопроса ? после названия параметра. Не забудьте задать значение по умолчанию для соответствующей переменной роута:
Ограничения регулярными выражениями
Вы можете ограничить формат параметров вашего роута с помощью метода where на экземпляре роута. Метод where принимает название параметра и регулярное выражение, определяющее ограничения для параметра:
Глобальные ограничения
Если вы хотите, чтобы параметр был всегда ограничен заданным регулярным выражением, то можете использовать метод pattern . Вам следует определить эти шаблоны в методе boot вашего RouteServiceProvider :
Когда шаблон был определён, он автоматически применится ко всем роутам, использующим этот параметр:
Именованные роуты
Именованные роуты позволяют удобно генерировать URL-адреса и делать переадресацию на конкретный роут. Вы можете задать имя роута, прицепив метод name к определению роута:
Также можно указать имена роутов для действий контроллера:
Генерирование URL адресов для именованных роутов
Когда вы назначили имя роуту, вы можете использовать это имя для генерирования URL адресов и переадресаций глобальным методом route :
Если у именованного роута есть параметры, вы можете передать их вторым аргументом метода route . Эти параметры будут автоматически вставлены в соответствующие места URL:
Группы роутов
Группы роутов позволяют использовать общие атрибуты роутов, такие как посредники и пространства имён, для большого числа роутов без необходимости определять эти атрибуты для каждого отдельного роута. Общие атрибуты указываются в виде массива первым аргументом метода Route::group .
Посредники
Посредники применяются ко всем роутам в группе путём указания списка этих посредников с параметром middleware в массиве групповых атрибутов. Посредники выполняются в порядке перечисления в этом массиве:
Пространства имён
Другой типичный пример использования групп роутов — назначение одного пространства имён PHP для группы контроллеров, используя параметр namespace в массиве группы:
Помните, по умолчанию RouteServiceProvider включает ваши файлы роутов в группу пространства имён, позволяя вам регистрировать роуты контроллера без указания полного префикса пространства имён App\Http\Controllers . Поэтому нам надо указать лишь ту часть пространства имён, которая следует за базовым пространством имён App\Http\Controllers .
Доменный роутинг
Группы роутов можно использовать для обработки маршрутизации поддоменов. Поддоменам можно назначать параметры роутов также как URI роутов, поэтому вы можете захватить часть поддомена и использовать в своём роуте или контроллере. Поддомен можно указать с помощью ключа domain в массиве атрибутов группы:
Префиксы роута
Метод prefix можно использовать для указания URI-префикса каждого роута в группе. Например, если вы хотите добавить admin ко всем URI роутов в группе:
Привязка модели роута
При внедрении ID модели в действие роута или контроллера бывает часто необходимо получить модель, соответствующую этому ID. Привязка моделей — удобный способ автоматического внедрения экземпляров модели напрямую в ваши роуты. Например, вместо внедрения ID пользователя вы можете внедрить весь экземпляр модели User , который соответствует данному ID.
Неявная привязка
Laravel автоматически включает модели Eloquent, определённые в действиях роута или контроллера, чьи переменные имеют имена, совпадающие с сегментом роута. Например:
Так как переменная $user указывается в качестве аргумента Eloquent модели App\User и название переменной совпадает с URI-сегментом
Изменение имени ключа
Если вы хотите, чтобы для получения класса данной модели вместо столбца id использовался другой столбец базы данных, вы можете переопределить метод getRouteKeyName в своей модели Eloquent:
Явная привязка
Для регистрации явной привязки используйте метод роута model для указания класса для данного параметра. Вам надо определить явные привязки вашей модели в методе boot класса RouteServiceProvider :
Затем определите роут, содержащий параметр
Из-за того, что мы ранее привязали все параметры
Если совпадающий экземпляр модели не найден в базе данных, будет автоматически сгенерирован HTTP-отклик 404.
Изменение логики принятия решения
Если захотите использовать собственную логику принятия решения, используйте метод Route::bind . Переданное в метод bind замыкание получит значение сегмента URI, и должно вернуть экземпляр класса, который вы хотите внедрить в роут:
Подмена методов
HTML-формы не поддерживают действия PUT , PATCH или DELETE . Поэтому при определении роутов PUT , PATCH или DELETE , вызываемых из HTML-формы, вам надо добавить в неё скрытое поле _method . Переданное в этом поле значение будет использовано как метод HTTP-запроса:
Используйте хелпер method_field , чтобы сгенерировать ввод _method :
Получение текущего роута
Используйте методы current , currentRouteName и currentRouteAction фасада Route для получения информации о роуте, обрабатывающем входящий запрос:
Чтобы изучить все доступные методы, обратитесь к документации по API класса, лежащего в основе фасада Route и экземпляра Route.
Источник