Ошибка «Отсутствуют обязательные параметры для [Route: property.edit]» при редактировании продукта - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь изменить продукт, но мой маршрут не работает. Пожалуйста, дайте мне знать, как заставить работать этот ресурсный маршрут.

Это мой веб-файл:

Route::resource('product', 'ProductController')->except([
    'store', 'update', 'destroy', 'edit'
]);

Вот мой файл контроллера:

public function edit($product)
{
  $product=Product::find($product);
  return view('admin.product.edit', compact($product));
}

Вот мой файл просмотра:

<li><a href="{{ route('property.edit') }}">Edit</a></li>

Ответы [ 2 ]

2 голосов
/ 22 мая 2019

Когда вы пытаетесь редактировать ресурс, вы должны указать его идентификатор. Поэтому, если вы запустите php artisan route:list, вы увидите, что ваш product маршрут для редактирования ожидает аргумент, что-то вроде этого: 'product/{product}/edit', чтобы заставить его работать, нужно сделать следующее:

<li><a href="{{ route('property.edit', $property) }}">Edit</a></li>

или

<li><a href="{{ route('property.edit', $property->id) }}">Edit</a></li>

Третий вариант

<li>
<a href="{{ route('property.edit', ['id' => $property->id]) }}">Edit</a>
</li>

Ваш названный маршрут называется property.edit, и вы поделились с нами маршрутом product, поэтому, пожалуйста, отредактируйте свой вопрос и предоставьте детали. Но в любом случае вам не хватает аргумента, следовательно, ошибка.

0 голосов
/ 22 мая 2019

Вы не передаете параметр в свой маршрут. Маршрут, ожидающий параметр. Допустим, вам нужно отредактировать продукт, но вы должны знать, какой продукт вы хотите отредактировать для этого, и вы передадите свой идентификатор продукта или порцию продукта, чтобы получить нужную запись.

Вы делаете ошибку. ты ничего не пропускаешь. просто сделай что-нибудь ниже

<li><a href="{{ route('property.edit', $product->id) }}">Edit</a></li>

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

$product=Product::find($product);
return view('admin.product.edit', compact($product));

Если вы хотите увидеть свой список маршрутов, а также методы и аргументы каждого требуемого маршрута Вы можете запустить эту команду в терминале php artisan route:list

...