Маршрут [admin.distroyDish] не определен. (Просмотр: /home/abdalrazag/MyResutrant/resources/views/admin/manager.blade.php) - PullRequest
0 голосов
/ 01 апреля 2020

Я использую Laravel 7 для построения системы Ресторан. Я сделал форму, которая go для указания c маршрута, и я получаю имя маршрута, но это ошибка отображения в качестве заголовка

представление менеджера

<form method="post" action="{{route('admin.distroyDish')}}" >
@csrf
<div class="form-group">
    <select class="form-control" name="dish">
    @for ($i = 0 ; $i < count($InetialData['dish']); $i++))
    <option value="{{ $InetialData['dish'][$i]->id }}">
        {{ $InetialData['dish'][$i]->name }}
    </option>
    @endfor
    </select>
</div>
    <input type="submit" name="delete_dish" value="Delete" class="btn btn-danger">
    <br>
</form>

файл веб-маршрута

Route::get('/', function () {
    return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/manager', 'ManagerController@dashboard');
Route::post('/manager', 'ManagerController@addItem');
Route::get('/manager/{id}', 'ManagerController@deleteTable')->name('admin.deleteTable');
Route::post('/manager', 'ManagerController@destroyDish')->name('admin.distroyDish');
Route::post('/manager', 'ManagerController@addIngrediant')->name('admin.addIngrediant');
Route::get('/kitchen', 'KitchenController@index')->name('kitchen.home');
Route::get('/kitchen/{id}', 'KitchenController@submitDish')->name('kitchen.submit.dish');
Route::post('/kitchen', 'KitchenController@addIngrediant')->name('kitchen.addIngrediant');

ManagerController

private function initData()
{
    $InetialData = array(
        'category' => DB::table('Category')->get(),
        'dish' => DB::table('Items')->get(),
        'users' => DB::table('users')->get(),
        'Ingrediant' => DB::table('Ingrediant')->get(),
        'IngrediantHistory' => DB::table('IngrediantHistory')->get()
    );

    return $InetialData;
}

public function destroyDish(Request $request)
{
    DB::table('Items')
        ->where('id', '=', $request->dish)
        ->delete();

    return redirect('/manager')->with('InetialData' , $this->initData());
}

работает другой маршрут, например кухня, почему этот маршрут не работает ??

Ответы [ 2 ]

2 голосов
/ 01 апреля 2020

У вас есть дубликаты маршрутов:

Route::post('/manager', 'ManagerController@addItem');
Route::post('/manager', 'ManagerController@destroyDish')->name('admin.distroyDish');
Route::post('/manager', 'ManagerController@addIngrediant')->name('admin.addIngrediant');

Изменение структуры конечной точки.

0 голосов
/ 01 апреля 2020

Как я вижу, у вас есть больше маршрутов, вызывающих POST / manager. Попробуйте использовать маршруты как ресурсы:

  1. GET / entity список
  2. GET / entity / {entity} view
  3. POST / entity create
  4. PUT / entity / {entity} update
  5. DELETE / entity / {entity} delete

Элегантный и простой в обращении и чтении.

...