Контроллер в Laravel не получает объект класса
Есть Laravel 7
Есть модель:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Questionnary extends Model
{
protected $guarded = [];
}
Есть контроллер
namespace App\Http\Controllers;
use App\Questionnary;
class QuestionnaireController extends Controller
{
public function show(Questionnary $questionnary) {
return view('questionnaire.show', compact('questionnary'));
}
}
Есть роут:
Route::get('/questionnaires/{questionnaire}', 'QuestionnaireController@show');
Есть запись в таблице:
|id|user_id|title|purpose|created_at|updated_at|
|1 |1 |title|p |дата |дата |
В итоге в контроллер попадает пустой объект, при попытке обратиться к свойству id $questionnary->id, я получаю null. Что не так с инъекцией зависимостей, ведь по идем на основании ID 1 должен был быть построен класс, но почему он пустой?
Ответы (1 шт):
Автор решения: sk DYLAN
→ Ссылка
Route::get('/questionnaires/{questionnaire}', 'QuestionnaireController@show');
Должно быть совпадение с названием класса questionnary
Route::get('/questionnaires/{questionnary}', 'QuestionnaireController@show');