Я создаю форум с Laravel 8, и на этом форуме пользователи могут редактировать свои ответы, которые они опубликовали на вопрос.
(как и StackOverflow)
Вот кнопка для доступа к клинку editquestion
:
<form action="{{ route('edit.answer', $ans->id, $show->id) }}">
<button type="submit" class="text-blue-500">Editing Answer</button>
</form>
А вот метод Контроллера для обновления ответов на вопрос:
public function updateAnswer(Answer $ans, Question $slug)
{
if($ans->ownedBy(auth()->user())){
$validate_data = Validator::make(request()->all(),[
'answer' => 'required'
])->validated();
$ans->update($validate_data);
return view('questions.question',[
'show' => $slug
]);
}
}
Как видите, я передал два параметра: $ans
в качестве идентификатора ответа и $id
в качестве идентификатора вопроса.
И в конце я передал переменную $id
в show
для перенаправления обратно к колонке вопросов:
return view('questions.question',[
'show' => $slug
]);
Так что он работает нормально и правильно обновляет ответ. Но проблема в том, что он показывает эту ошибку, когда возвращается на лезвие question
:
ErrorException Попытка получить имя свойства не-объекта (View: question.blade.php)
И строка, о которой идет речь в этой ошибке, идет здесь:
<a href="{{ route('users.posts', $show->user->name) }}">{{ $show->user->name }}</a>
Однако раньше он работал нормально, без вывода ошибок. Значит, это означает, что переменная slug
неправильно перешла на лезвие question
!
Также вот маршрут web.php
для этих двух лезвий:
Route::get('editquestion/{id}' , [QuestionController::class, 'editQuestion'])->name('edit.question');
Route::post('editquestion/{id}' , [QuestionController::class, 'updateQuestion'])->name('update.question');
Route::get('questions/{slug}' , [QuestionController::class, 'showQuestion'])->name('show.question');
Итак, как я могу исправить эту проблему и правильно перенаправить пользователя обратно после процесса адаптации?
Я был бы очень признателен за любую идею или предложение от вас, ребята ...
Заранее спасибо.
slug
в качестве имени ключа маршрута в модели? - person MAY   schedule 14.03.2021