Я хочу передать объект из файла лезвия в файл контроллера. Цель состоит в том, что когда пользователь нажимает кнопку редактирования, пользователь получает форму, заполненную предыдущими входными данными. Я использую этот код в файле лезвия:
<a href = "/feestype/{{ $feesType->id }}/edit" class = "btn btn-info btn-sm">Edit</a>
Но когда я хочу получить переданный объект из метода редактирования контроллера, я получаю ноль. Мой код контроллера сейчас выглядит так:
public function edit(FeesType $feesType)
{
//
dump($feesType->name);
return view('feestype.edit',['feesType'=>$feesType]);
}
Здесь я сбрасываю объект $ feeType, но получаю ноль. Пожалуйста, помогите мне решить эту проблему. заранее спасибо
Route :: resource ('feestype', 'FeesTypesController');
Вы решили это? У меня точно такая же проблема. Когда я сбрасываю, он равен нулю.






Привязка модели маршрута работает немного иначе, здесь документация
Что вам нужно сделать, так это составить такой маршрут:
Route::get('feestype/{feesType}/edit', 'YourController@edit')->name('feestype.edit');
тогда на ваш взгляд
<a href = "{{ route('feestype.edit', $feesType) }}" class = "btn btn-info btn-sm">Edit</a>
-- РЕДАКТИРОВАТЬ
используя файл ресурсов:
Route::resource('feestype', 'YourController')
ссылка будет построена так же, как указано выше:
{{ route('feestype.edit', $feesType) }}
Я использовал ресурсный маршрут
используйте php artisan route:list, он покажет вам имя маршрута, который вы используете. И затем используйте это во вспомогательной функции route, которую я использую выше, это будет то же самое
после использования вашего кода я получаю новую ошибку при сбросе: «Попытка получить свойство 'id' не-объекта»
это у вас есть в контроллере?
да. теперь мой код контроллера - «редактирование общедоступной функции (FeesType $ feeType) {// $ CommissionType = FeesType :: find ($ feeType-> id); дамп ($ feeType-> имя); возвратный вид ('feestype.edit', ['feeType' => $ feeType]); } '
Попробуйте в качестве первой строки в вашем контроллере dd($feesType); и проверьте, привязана ли модель должным образом или что-то еще отсутствует. И убедитесь, что URL-адрес в представлении сгенерирован правильно, но что у вас также есть feestype с этим идентификатором в вашей базе данных.
Модель работает правильно. Я предварительно выполнил создание маршрута с этой моделью. Снова ссылка отображается правильно, и у меня есть данные в базе данных с этим идентификатором.
Итак, в какой строке вы получаете эту ошибку? У меня нет вашего кода для отладки.
теперь он показывает другую ошибку. он говорит, что свойство объекта Feestype не существует
Извини, брат, но я не смогу тебе помочь, пока ты не покажешь настоящий код. Привязка модели маршрута должна работать точно так, как задокументировано, и с примером, который я вам привел, потому что я использую его именно так, и у меня нет проблем с этим.
пожалуйста, смотрите в моем разделе ответов
Вам следует отредактировать свой вопрос, а не давать ответ на проблему в вашем вопросе, чтобы другие люди могли ответить, если они столкнулись с вашей проблемой.
Теперь код в файле лезвия
<a href = "{{ route('feestype.edit',$feesType) }}" class = "btn btn-info btn-sm">Edit</a>
Файл контроллера содержит этот код:
public function edit(FeesType $feesType)
{
//
$feesType = FeesType::find($feesType->id);
dump($feesType->name);
return view('feestype.edit',['feesType'=>$feesType]);
}
И вот мое определение маршрута:
Route::resource('feestype','FeesTypesController');
И браузер показывает это сообщение:

А что у вас за сообщение об ошибке? Кстати, вам не нужно делать это снова $feesType = FeesType::find($feesType->id);, поэтому привязка модели предназначена, поэтому параметр $feesType уже должен быть заполнен.
после удаления этой строки теперь это сообщение об ошибке не отображается, но объект снова содержит null
попробуйте использовать dd вместо dump, потому что я не знаю, заключается ли проблема в методе контроллера или где-то в представлении, которое вы показываете.
И, пожалуйста, перейдите по ссылке на документацию, которой я поделился в своем ответе, чтобы решить вашу проблему, потому что найти такую проблему действительно сложно. Проведем целый день.
вывод dd добавлен в мой следующий ответ
так что проблема не в контроллере, а где-то в поле зрения. И, пожалуйста, продолжайте отладку или поднимите другой вопрос, а не ответ на вашу проблему. Мой ответ хорош для вашей первой проблемы.
с какой точки зрения у меня проблема?
Если у меня возникла проблема, то насколько верен мой URL-адрес после нажатия кнопки редактирования?
Пожалуйста, используйте нет пространство для ответов, чтобы предоставить дополнительную информацию или задать дополнительные вопросы; место для ответов зарезервировано исключительно для полных и отдельных ответов на вопрос.
вам следует изменить свой маршрут на:
Route::put('feestype/{id}/edit', 'YourController@edit');
Для обновления и редактирования вы должны использовать команду put, а не get.
Обратите внимание, что для этого кода:
<a href = "/feestype/{{ $feesType->id }}/edit" class = "btn btn-info btn-sm">Edit</a>
сначала вы должны сжать $ feestype в YourController, а затем использовать свой код в лезвии.
Как выглядит ваше определение маршрута?