WebDev2030
@WebDev2030
Битриксоид до мозга и костей

Почему ларавел не создает экземпляр класса в контроллере?

Всем привет.
Пишу такой код:
Роут
Route::get('article/{id}/edit', 'Cms\BlogArticleController@edit')->name('cms.blog.article.edit');

Контроллер
<?php
namespace App\Http\Controllers\Cms;

use App\Http\Controllers\Controller;
use App\Models\Blog\BlogArticle;

class BlogArticleController extends Controller
{
    public function edit(BlogArticle $article)
    {
        dd($article);
    }
}


При этом в $article нет ничего. Похоже он даже не понял к какой модели идет обращение.
5eb06eb1e1c95896958525.png

При этом если сделать:
<?php
namespace App\Http\Controllers\Cms;

use App\Http\Controllers\Controller;
use App\Models\Blog\BlogArticle;

class BlogArticleController extends Controller
{
    public function edit($article)
    {
        dd(BlogArticle::find($article));
    }
}

То все норм.
5eb06ebc1ca3e525510426.png
Почему такое может быть?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
WebDev2030
@WebDev2030 Автор вопроса
Битриксоид до мозга и костей
Все оказалочь очень просто:
название параметра дожно быть не $article, а $id т.к. в роуте прописано {id}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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