Я создал модель, используя php artisan make:model Transaction -a, поэтому она также сгенерировала для модели контроллер миграции, фабрики и ресурсов. Все работает как положено, но я понял это в коде контроллера:
/**
* Display the specified resource.
*
* @param \App\Transaction $transaction
* @return \Illuminate\Http\Response
*/
public function show(Transaction $transaction)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Transaction $transaction
* @return \Illuminate\Http\Response
*/
public function edit(Transaction $transaction)
{
//
}
Похоже, он ожидает экземпляр модели в методах show() и edit(), что кажется помощником для возврата представления, но как я могу интегрировать это в веб-маршрутизацию?
Английский не мой родной язык.
@ AhmedNourJamalEl-Din спасибо! в более старых версиях я должен был получить экземпляр модели с помощью Eloquent, это изменение меня смутило.






Запустите php artisan route:list на консоли. Вы получите все маршруты вашего приложения. Это список маршрутов Route::resource('admin/blog-category', 'BlogCategoryController');. По списку маршрутов вы получите представление об URI и действии.
| | POST | api/admin/blog-category | blog-category.store | App\Http\Controllers\BlogCategoryController@store | api |
| | GET|HEAD | api/admin/blog-category | blog-category.index | App\Http\Controllers\BlogCategoryController@index | api |
| | GET|HEAD | api/admin/blog-category/create | blog-category.create | App\Http\Controllers\BlogCategoryController@create | api |
| | GET|HEAD | api/admin/blog-category/{blog_category} | blog-category.show | App\Http\Controllers\BlogCategoryController@show | api |
| | PUT|PATCH | api/admin/blog-category/{blog_category} | blog-category.update | App\Http\Controllers\BlogCategoryController@update | api |
| | DELETE | api/admin/blog-category/{blog_category} | blog-category.destroy | App\Http\Controllers\BlogCategoryController@destroy | api |
| | GET|HEAD | api/admin/blog-category/{blog_category}/edit | blog-category.edit | App\Http\Controllers\BlogCategoryController@edit | api |
проверьте BlogCategoryController@show Uri, вы получите api/admin/blog-category/{blog_category}. то есть вы должны передать один параметр. В качестве параметра вы должны передать идентификатор категории блога.
Пример: если URL-адрес api/admin/blog-category/10
public function show(Blog $BlogCategory)
{
$blogCategory = $BlogCategory;
}
В $blogCategory вы получите результат категории блога с идентификатором 10.
почему-то не работает. Я написал метод show() следующим образом: return view('administração.transações.show')->with('transação', $transaction);, а маршрут - URI: administração/transações/{transaçõe}; Name: transações.show; Action: App\Http\Controllers\TransactionController@show, но когда я пытаюсь получить его с помощью administração / transações / {id}, он возвращает ошибку 404.
Ошибка 404, о которой я упоминал, вероятно, является ошибкой маршрутов с utf-8. Когда я перехожу на trasacoes (от «transações»), это работает. Я запрошу проблему.
если ваш маршрут - administração/transações/{transaçõe}, а ваша модель - Сделка, тогда laravel не знает, что с ним делать!
Итак, чтобы заставить его работать, есть два способа:
вы должны привязать его явным образом в соответствии с этим ссылка на сайт:
добавьте Route::model('transaçõe', App\Transaction::class); в метод boot() вашего RouteServiceProvider следующим образом:
public function boot()
{
parent::boot();
Route::model('transaçõe', App\Transaction::class);
}
ИЛИ вы меняете маршрут на administração/transações/{transaction}.
просто передайте я бы объекта в ваших URL-адресах, тогда laravel сделает за вас магию, и у вас будет объект в ваших методах