Laravel Проблема с контроллером маршрута - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь добавить новый маршрут к своему приложению и не могу заставить его работать. Я продолжаю получать ошибку 404. Похоже, что физический путь ищет неправильный каталог. В настоящее время просматривается D: \ Web \ FormMapper \ blog \ public \ forms, но следует искать D: \ Web \ FormMapper \ blog \ resources \ view \ layout \ pages \ forms.blade. php

URL моего запроса:

http://localhost/FormMapper/           /works fine
http://localhost/FormMapper/forms      /doesn't work
http://localhost/FormMapper/forms.php  /No input file specified.

Мой FormsController:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FormsController extends Controller
{
    public function index()
    {
        return view('layouts.pages.forms');
    }
}

Мой веб. php:

Route::get('/', function () {
    return view('layouts/pages/login');
});
Route::get('/forms', 'FormsController@index');

Структура моей папки выглядит следующим образом: enter image description here

Моя конфигурация / просмотр. php

return [
'paths' => [
    resource_path('views'),
],

'compiled' => env(
    'VIEW_COMPILED_PATH',
    realpath(storage_path('framework/views'))
),
];

Ответы [ 3 ]

1 голос
/ 20 января 2020

Если вашему маршруту нужно только вернуть вид, вы можете использовать метод Route::view. Как и метод перенаправления, этот метод предоставляет простой ярлык, так что вам не нужно определять полный маршрут или контроллер. Метод view принимает URI в качестве первого аргумента и имя представления в качестве второго аргумента. Кроме того, вы можете предоставить массив данных для передачи в представление в качестве необязательного третьего аргумента:

Route::view('/', 'layouts.pages.login');

Route::view('/forms', 'layouts.pages.forms', ['foo' => 'bar']);

Проверка документы

1 голос
/ 20 января 2020

вы должны использовать точку для этого. В вашем контроллере измените на это:

return view('layouts.pages.forms');
0 голосов
/ 22 января 2020

После отслеживания копания глубже я обнаружил, что проблема в том, что IIS требует правил перезаписи URL для правильной работы Laravel. Маршрут index. php и '/' будет работать b / c, это была страница по умолчанию, но другие страницы этого не сделали. Чтобы проверить это, я использовал

php artisan serve

подход к нему. и все работало правильно. К сожалению, я не могу сделать это на производстве, поэтому мне нужно было заставить его работать с IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...