@a0xh

Как реализовать метод edit в Laravel?

У меня есть следующий маршрут:

user/{login}/accounts/{account}/edit

Я пытаюсь реализовать метод edit() в ресурсном контроллере следующим образом:

public function edit(Account $account)
{
    return view('user.account.edit', [
        'account' => $account
    ]);
}


Но получаю ошибку: Argument 1 passed to App\Http\Controllers\User\AccountController::edit() must be an instance of App\Account, string given.

Также я пробовал реализовать его таким образом:

public function edit($id)
{
    $account = Account::find($id);
    return view('user.account.edit', dd($account));
}


Но тогда я получаю просто Null.

Что не так я делаю и в какую сторону следует копать?
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
В роуте у вас два параметра, а принять в методе вы пытаетесь только один, причём второй. А фреймворк туда передаёт оба, как вы и просили.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@a0xh Автор вопроса
Как и писал выше Алексей Уколов, нужно было просто передать второй параметр.

public function edit($login, Account $account)
{
    return view('profile.accounts.edit', [
        'account' => $account
    ]);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы