我使用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()
方法中使用模型实例,这似乎是返回视图的助手,但是如何将其集成到Web路由中呢?
英语不是我的母语。
答案 0 :(得分:0)
在控制台上运行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
,您会得到api/admin/blog-category/{blog_category}
。也就是说,您必须传递一个参数。作为参数,您必须传递博客类别ID。
例如:如果网址是api/admin/blog-category/10
public function show(Blog $BlogCategory)
{
$blogCategory = $BlogCategory;
}
在$blogCategory
中,您将获得ID为10的博客类别的结果。
答案 1 :(得分:0)
我提到的404错误可能是utf-8路由上的错误。当我更改为trasacoes时(从“transaç'es”开始),它起作用了。我会提出问题。
答案 2 :(得分:0)
如果您的路线是administração/transações/{transaçõe}
,而您的模型是交易,那么laravel不知道该怎么做!
要使其正常运行,有两种方法:
您必须根据此link对其进行显式绑定:
将Route::model('transaçõe', App\Transaction::class);
添加到 RouteServiceProvider 的boot()
方法中,如下所示:
public function boot()
{
parent::boot();
Route::model('transaçõe', App\Transaction::class);
}
OR ,您将路线更改为administração/transações/{transaction}
。