Порядок веб-маршрутизации Laravel

Я создаю приложение для хранения с помощью laravel и работаю над страницами, отображающими файлы. В моем контроллере есть одна функция для загрузки файлов с удаленным = "нет" на домашнюю страницу и другая функция для загрузки файлов с удаленным = "да" на страницу корзины. Однако страница корзины отказывается загружаться

Auth::routes(['verify' => true]);

Route::group(['middleware' => ['auth']], function(){
Route::get('get/{files}', 'RoofController@getFile')->name('getfile');
Route::name('roofs_path')->get('/home', 'RoofController@index');
Route::name('store_roof_path')->post('/home', 'RoofController@store');
Route::name('deletefile')->get('{fileToDelete}', 'RoofController@deleteFile');
});

//route to files not deleted
Route::name('index')->get('/home', 'RoofController@index')->middleware('verified');
//route to files deleted
Route::name('bin')->get('/home', 'RoofController@bin')->middleware('verified');

И функция bin в контроллере

   public function index()
    {   
        //get id and name of user
        $id = Auth::id();
        //specify 'where' array...get only non-deleted files and user's files
        $files_to_get = ['user_id' => $id, 'deleted' => 'no'];

        //get all files into an array
        $all_files = File::where($files_to_get)->orderBy('created_at', 'DESC')->get();

    //print_r($all_files);

    return view('home', [
        'files' => $all_files
    ]);


}

public function bin()
{   
    //get id and name of user
    $id = Auth::id();
    //specify 'where' array...get only non-deleted files and user's files
    $files_to_get = ['user_id' => $id, 'deleted' => 'yes'];

    //get all files into an array
    $all_files = File::where($files_to_get)->orderBy('created_at', 'DESC')->get();

    //print_r($all_files);

    return view('bin', [
        'files' => $all_files
    ]);


}

Laravel выбирает, какой контроллер/метод загрузить на этапе маршрута, в этот момент он понятия не имеет, в чем разница между /home -> @index и /home -> @bin, потому что он не загрузил метод, связанный с маршрутом, до тех пор, пока он не будет выбран. Добавьте параметр deleted к маршруту bin и используйте его, а не переменную GET.

Joe 27.03.2019 11:06

Я пробовал это, но ссылка на файл bin все еще не работает. Вот ссылка в представлении: <button href = "{{route('bin')}}">Bin</button>... и не могли бы вы привести пример удаленного параметра?

Chiro Ogbo 27.03.2019 11:12

У вас есть проблема в том, что у вас есть 2 маршрута с одним и тем же URL-адресом, то, как вы называете маршрут, не имеет значения (на самом деле это просто для удобства), система сопоставляет URL-адреса, а не имена маршрутов. Измените URL-адрес для маршрута корзины.

Joe 27.03.2019 11:14

Хорошо, я изменил это на: Route::name('bin')->get('/bin', 'RoofController@bin')->middleware('verified').... но bin.blade все еще не загружается

Chiro Ogbo 27.03.2019 11:19

Итак, вам нужно выполнить некоторую отладку dd() в методе bin.

Joe 27.03.2019 11:24

Вы используете мягкое удаление модели для файловой модели?

narayansharma91 27.03.2019 12:19

Нет, я не использую мягкое удаление. На самом деле я только изучаю Laravel, поэтому маршрутизация для меня немного нова.

Chiro Ogbo 27.03.2019 12:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
47
0

Другие вопросы по теме