Я создаю приложение для хранения с помощью 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
]);
}
Я пробовал это, но ссылка на файл bin все еще не работает. Вот ссылка в представлении: <button href = "{{route('bin')}}">Bin</button>... и не могли бы вы привести пример удаленного параметра?
У вас есть проблема в том, что у вас есть 2 маршрута с одним и тем же URL-адресом, то, как вы называете маршрут, не имеет значения (на самом деле это просто для удобства), система сопоставляет URL-адреса, а не имена маршрутов. Измените URL-адрес для маршрута корзины.
Хорошо, я изменил это на: Route::name('bin')->get('/bin', 'RoofController@bin')->middleware('verified').... но bin.blade все еще не загружается
Итак, вам нужно выполнить некоторую отладку dd() в методе bin.
Вы используете мягкое удаление модели для файловой модели?
Нет, я не использую мягкое удаление. На самом деле я только изучаю Laravel, поэтому маршрутизация для меня немного нова.






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