#php #arrays #laravel #laravel-8
#php #массивы #laravel #laravel-8
Вопрос:
ОБНОВЛЕНИЕ # 1:
Я исправил свою опечатку:
<form action="{{ route('articles.destroy' , ['article' => $article->id]) }}" method="post">
Но теперь я получаю это сообщение об ошибке:
Исключение IlluminateRoutingExceptionsUrlGenerationException Отсутствуют обязательные параметры для [Route: articles.edit] [URI: admin/articles/{article}/edit]
Вот мой web.php
:
Route::prefix('admin')->group(function(){
Route::get('/panel', [PanelController::class, 'index']);
Route::resource('/articles', ArticleController::class);
});
У меня есть блейд, который содержит форму:
<form action="{{ route('articles.destroy' . ['id' => $article->id]) }}" method="POST">
{{ method_field('delete') }}
{{ csrf_field() }}
<div class="btn-group btn-group-xs">
<a href="{{ route('$articles.edit' . ['id' => $article->id]) }}" class="btn btn-primary">Edit</a>
<button type="submit" class="btn btn-danger">حدف</button>
</div>
</form>
Но когда я перехожу к этому блейду, он говорит:
ErrorException Преобразование массива в строку (просмотр: F:xampphtdocsmywebsiteresourcesviewswebsitebackendarticlesindex.blade.php )
И это относится к этой строке:
<form action="{{ route('articles.destroy' . ['id' => $article->id]) }}" method="POST">
Я не знаю, почему я получаю эту ошибку, поэтому, если вы знаете, почему я получаю эту ошибку, пожалуйста, дайте мне знать…
Заранее спасибо.
Комментарии:
1. Потому что вам нужно использовать
,
, а не.
2. На всякий случай, если вы не смогли его найти: laravel.com/docs/8.x/routing#generating-urls-to-named-routes
Ответ №1:
У вас опечатка:
route('articles.destroy' . ['id' => $article->id])
это .
для конкатенации строк. Вы хотите ,
разделить аргументы:
route('articles.destroy', ['id' => $article->id])
Вам также нужно будет сопоставить имя параметра маршрута с ключом, который вы передаете в массиве:
route('articles.destroy', ['article' => $article->id])
// admin/articles/{article}
Предполагается $article->id
, что не возвращается null
.
Комментарии:
1. Спасибо за ответ, но теперь я получаю
Missing required parameters for [Route: articles.destroy] [URI: admin/articles/{article}]
2. Я только что обновил свой вопрос о моих маршрутах. Я не знаю, куда включить
['article' => $article->id]
. Не могли бы вы мне помочь…3. это тот же массив, который вы уже передаете в
route
качестве второго аргумента, просто измените ключ сid
наarticle
, чтобы он соответствовал параметру маршрута, который вы пытаетесь заменить4. Упс, я понял, что вы имеете в виду, и заменил его, но ошибка все еще остается. Я добавил свое обновление, пожалуйста, помогите мне с этим!
5. вы должны внести те же изменения в создаваемую вами ссылку редактирования … это та же самая проблема
Ответ №2:
измените это:
<form action="{{ route('articles.destroy' . ['id' => $article->id]) }}" method="POST">
к этому:
<form action="{{ route('articles.destroy' , ['id' => $article->id]) }}" method="POST">
Комментарии:
1. Спасибо за ответ, но теперь я получаю
Missing required parameters for [Route: articles.destroy] [URI: admin/articles/{article}]
2. имя вашего параметра в web.php должно быть таким же, как в вашей форме, независимо от того, оба идентификатора или обе статьи