Мои два маршрута admin.media.begin-destroy 'и' admin.media.destroy 'терпят неудачу, если middleware =>' auth '.Невозможно добраться до маршрута через промежуточное промежуточное ПО для двух маршрутов
При попытке доступа к маршруту «admin.media.begin-destroy» мне будет предоставлена страница входа в систему с контроллера проверки подлинности, и я не могу уйти от него, не пытаясь получить доступ к другой странице.
на моей машине развития она отлично работает как с и без Идентов промежуточного
Вот мои маршруты, которые защищены:
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {
Route::get('/', ['as' => 'admin.dashboard', 'uses' => 'Admin\[email protected]']);
Route::get('show/{show}/toggle',['as' => 'admin.show.toggle','uses'=>'Admin\[email protected]']);
Route::resource('show', 'Admin\ShowController');
// The admin.media.begin-destroy and admin.media.destroy fails when middleware => 'auth'
Route::get('media/begin-destroy-ddd/{id}', ['as' => 'admin.media.begin-destroy', 'uses' => 'Admin\[email protected]']);
Route::resource('media', 'Admin\MediaController', ['only' => ['index', 'create', 'store', 'destroy']]);
Route::get('order', ['as'=> 'admin.order.index', 'uses' => 'Admin\[email protected]']);
Route::get('order/list-for-modification', ['as' => 'admin.order.list-for-modification', 'uses' => 'Admin\[email protected]']);
Route::get('order/{order}/begin-destroy', ['as' => 'admin.order.begin-destroy', 'uses' => 'Admin\[email protected]']);
Route::delete('order/{order}/destroy', ['as' => 'admin.order.destroy', 'uses' => 'Admin\OrderC[email protected]']);
});
Метод управления для «admin.media.begin-уничтожить» и «admin.media.destroy» очень прост:
public function beginDestroy($filename)
{
return view('admin.media.begin-destroy', compact('filename'));
}
/**
* Remove the specified resource from storage.
*
* @param int $filename
* @return Response
*/
public function destroy($filename)
{
Storage::disk('free-media')->delete($filename);
return redirect()->route('admin.media.index');
}
Я очень озадачен, почему это не работает.
Edit! --- Попытка работать вокруг меня проблем я
/Переехал проблемные маршруты в свою собственную группу, без промежуточного слоя
Route::group(['prefix' => 'admin'], function() {
Route::get('media/begin-destroy/{id}', ['as' => 'admin.media.begin-destroy', 'uses' => 'Admin\[email protected]']);
Route::resource('media', 'Admin\MediaController', ['only' => ['index', 'create', 'store', 'destroy']]);
});
/Добавлена регистрация промежуточного слоя в Admin \ Конструктор Mediacontroller, я не могу добавить beginDestroy, потому что он не сработает по неизвестной причине public function __construct() { $ this-> middleware ('auth', ['except' => ['beginDestroy']]); }
// В beginDestroy, я затем проверить для пользователя, и пользователь не вошел в систему WTF
public function beginDestroy($filename)
{
if (Auth::check())
{
return view('admin.media.begin-destroy', compact('filename'));
}
// I end up here.
return "Un-authorized";
}
для данного конкретного случая использования, это нормально для меня, чтобы отключить проверку в beginDestroy , потому что в фактическом коде уничтожения auth работает снова, но что происходит?