Маршрутизация нового проекта Laravel не работает?

Маршрутизация нового проекта Laravel не работает? Это файл route.php:

<?php

Route::get('/', function () {
    return view('welcome');
});

Route::get('ID/{id}',function($id){
    echo 'ID: '.$id;
});

Route::get('/user/{name?}',function($name = 'Virat Gandhi'){
    echo "Name: ".$name;
});

Итак, что я сделал, так это. Я запустил локальный сервер разработки laravel с помощью: php artisan serve. Так же, как книга сказала мне, что я прохожу через (Laravel 5). Но теперь работает только первая маршрутизация '/', которая использует шаблон блейда приветствия.

Но все остальные маршруты не работают >.‹

Кто-нибудь может мне помочь? Я застрял.

Мой файл app/public/htacess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

person ofahchouch    schedule 19.03.2018    source источник
comment
Есть ли ошибка? хранилище/журналы/laravel.log?   -  person Bas    schedule 19.03.2018
comment
Круто, я не знал об этом журнале ошибок. Спасибо. Но ошибок нет ›.‹   -  person ofahchouch    schedule 19.03.2018
comment
см. ответ @darthsoup вернуться   -  person Bas    schedule 19.03.2018
comment
И эхо, и возврат не заставляют маршрутизацию работать.   -  person ofahchouch    schedule 19.03.2018
comment
Если вы вернете return view('welcome'); на другие маршруты? Есть ли ошибки в логах?   -  person Bas    schedule 19.03.2018
comment
@Bas Если я возвращаю приветствие шаблона представления на другие маршруты, это дает мне ту же ошибку: Извините, страница, которую вы ищете, не может быть найдена. Это ошибка, которую я получаю на странице. Но в моем laravel.log я не вижу ошибок.   -  person ofahchouch    schedule 19.03.2018
comment
Опубликуйте свои htacces, app/public folder, я думаю, что это проблема   -  person Bas    schedule 19.03.2018
comment
круто, пожалуйста, опубликуйте свой ответ и кроме   -  person Bas    schedule 19.03.2018
comment
Я добавил файл htacess.   -  person ofahchouch    schedule 19.03.2018


Ответы (4)


Я попробовал все ваши маршруты, все работает нормально.

Примечание: маршруты чувствительны к регистру, убедитесь, что вы обращаетесь к тому же маршруту, который вы указали в route.php.

Я пробовал следующие маршруты:

http://localhost:8000/user/1
return :Name: 1

http://localhost:8000/ID/1
return  :ID: 1
person Prashant Prajapati    schedule 19.03.2018
comment
Да, я знаю, что они чувствительны к регистру. Это не первый фреймворк, который я изучаю. Так что я проверил это. Но это все еще не работает. Я думаю, что это могут быть какие-то настройки в файле htacess или что-то в этом роде. Но у меня пока нет опыта работы с такими файлами - person ofahchouch; 19.03.2018
comment
Поскольку ваш заголовок касается неработающего маршрута, я удостоверюсь, что ваши маршруты работают правильно. - person Prashant Prajapati; 19.03.2018
comment
Не могли бы вы поделиться, к какому маршруту вы пытаетесь получить доступ и с какой именно ошибкой вы сталкиваетесь на этом маршруте? - person Prashant Prajapati; 19.03.2018
comment
Да, но я не знаю, в чем проблема. Вот почему я прошу помощи в StackOverflow. - person ofahchouch; 19.03.2018
comment
Route::get('ID/{id}',function($id){ echo 'ID: '.$id; }); Он сказал: Извините, страница, которую вы ищете, не может быть найдена. - person ofahchouch; 19.03.2018
comment
в браузере, какой именно маршрут вы вводите, не могли бы вы поделиться? - person Prashant Prajapati; 19.03.2018
comment
используйте строчные буквы в URL и в ваших маршрутах - person Bas; 19.03.2018
comment
просто отправьте свой проект и сохраните все файлы, перейдите в браузер и введите это localhost:8000/ID/1 ( обратите внимание, что ваш порт locolhost может отличаться для меня, это 8000 с использованием xamp) - person Prashant Prajapati; 19.03.2018
comment
@PrashantPrajapati у меня не работает. Я уже пробовал это много раз подряд. - person ofahchouch; 19.03.2018
comment
просто дайте мне знать маршрут, который вы вводите в URL - person Prashant Prajapati; 19.03.2018
comment
@PrashantPrajapati, нужно ли запускать сервер Apache? Разве у Laravel нет собственного сервера Apache?! - person ofahchouch; 19.03.2018
comment
@PrashantPrajapati локальный хост: 8000/ID/1 - person ofahchouch; 19.03.2018
comment
Просто откройте свой xamp и запустите обе службы apache и mysql laravel, у которых нет своих собственных - person Prashant Prajapati; 19.03.2018
comment
@PrashantPrajapati О .. я думал, что Laravel использовал свой собственный сервер Apache, когда я нажал на php artisan serve .. Так вот в чем проблема ... где я могу увидеть настройки apache в моих файлах проекта Laravel, чтобы проверить порты? - person ofahchouch; 19.03.2018

Вы должны использовать return, а не echo

Как это:

Route::get('ID/{id}', function($id) {
    return 'ID: ' . $id;
});
person darthsoup    schedule 19.03.2018
comment
@darthsoup работает как с эхом, так и с возвратом. я пытался с моей стороны, вы можете просто попробовать эхо, у него есть какая-то другая проблема, чем маршрут, который я так думаю. - person Prashant Prajapati; 19.03.2018

Я попробовал все ваши маршруты, все работает нормально.

Примечание: маршруты чувствительны к регистру, убедитесь, что вы обращаетесь к тому же маршруту, который вы указали в route.php.

Я пробовал следующие маршруты:

http://localhost:8000/user/1
return :Name: 1

http://localhost:8000/ID/1
return  :ID: 1

Примечание: убедитесь, что вы запускаете службы apache и mysql из xamp, прежде чем обслуживать свой проект.

person Prashant Prajapati    schedule 19.03.2018
comment
Где я могу изменить свой номер порта в моем проекте Laravel? Мой порт Apache для ламп - 80. Но я не знаю, где я должен это изменить. Какой файл настроек Laravel мне нужно изменить? - person ofahchouch; 19.03.2018
comment
что вы используете xamp, wamp любое другое упоминание, пожалуйста? - person Prashant Prajapati; 19.03.2018
comment
Ламп, Apache2, порт 80 - person ofahchouch; 19.03.2018
comment
php ремесленник служит --port 80 - person Prashant Prajapati; 19.03.2018
comment
Сначала я запустил свой lampp apache, а затем запустил команду php artisan serve --port 80. Но он сказал следующее: [Пн, 19 марта, 11:02:02 2018] Не удалось прослушать 127.0.0.1:80 (причина: адрес уже используется) - person ofahchouch; 19.03.2018
comment
Этот адрес порта уже используется, попробуйте использовать php artisan serve --port 8080. - person Prashant Prajapati; 19.03.2018
comment
Разве мне не нужно использовать тот же порт ремесленника, что и мой номер порта Apache Lampp? Почему он отличается от 80? Ты можешь это объяснить? Я собираюсь проверить это сейчас. - person ofahchouch; 19.03.2018
comment
И это не работает. Те же страницы ошибок, что и раньше, с сообщением: Извините, страница, которую вы ищете, не может быть найдена. - person ofahchouch; 19.03.2018

Извините, я не могу рассказать об этом в комментариях выше, так как у меня недостаточно представителей.

Я думаю, проблема в том, что вы смешиваете серверы, которые используете. Сначала попробуйте запустить сервер LAMP и запустить apache и mysql. Поскольку вы сказали, что apache, запущенный LAMP, указывает на порт 80, вы можете попробовать получить к нему доступ непосредственно в браузере (например, http://localhost/yourproject/public/user/1).

Я предполагаю, что, поскольку вы используете LAMP, ваш проект находится под корнем www. Вот почему я ввел полный путь для доступа к пользовательскому маршруту.

person Anjo    schedule 19.03.2018