我现在通过使用资源路由进入路由
这是我在路由器中的代码,
Route::resource('item-sales', 'ItemSalesController');
这是我控制器中的代码
return View::make('item-sales.create')
当我返回视图时,它不会显示我需要的URL,
URL - item-sales/
我需要什么/ URL的预期输出是
URL - item-sales/create
这是我的控制器
public function store()
{
$id = Input::get('item_id');
$new_item = Item::find($id);
$new_qty = Input::get('item_quantity');
$total = $new_item->item_price * $new_qty;
Session::put('added-items', [
0 => [
'item_id' => $id,
'item_name' => $new_item->item_name,
'item_price' => $new_item->item_price,
'item_category' => $new_item->category,
'item_quantity' => Input::get('item_quantity')
]
]);
$array = Session::get('added-items');
$total = number_format($total, 2, '.', ',');
return View::make('item-sales.create')
->with('items',$array)
->with('total',$total);
}
答案 0 :(得分:1)
如果您需要自己的自定义方法和单个路由的单个路由,请使用restful routing。
在Routes.php中:
Route::controller('item-sales', 'ItemSalesController');
在ItemSalesController.php中:
public function getCreate() {
$id = Input::get('item_id');
$new_item = Item::find($id);
$new_qty = Input::get('item_quantity');
$total = $new_item->item_price * $new_qty;
Session::put('added-items', [
0 => [
'item_id' => $id,
'item_name' => $new_item->item_name,
'item_price' => $new_item->item_price,
'item_category' => $new_item->category,
'item_quantity' => Input::get('item_quantity')
]
]);
$array = Session::get('added-items');
$total = number_format($total, 2, '.', ',');
return View::make('item-sales.create')
->with('items',$array)
->with('total',$total);
}
然后在Url中:路由到:item-sales / create
答案 1 :(得分:0)
检查文档中的Resource Controller。它的动作映射到使用HTTP
动词的方法。因此,例如,要显示创建资源的表单,方法应为create
,请求方法应为GET
,URL
应为/item-sales/create
。
Verb Path Action Route Name
GET /resource index resource.index
// Follow this one
GET /item-sales/create create item-sales.create
POST /resource store resource.store
GET /resource/{resource} show resource.show
GET /resource/{resource}/edit edit resource.edit
PUT/PATCH /resource/{resource} update resource.update
DELETE /resource/{resource} destroy resource.destroy
确保路由和路由名称从命令提示符(终端)运行php artisan routes
,并准确使用路由名称和URL。
store
方法用于保存并使用POST
方法/ http动词,而URL
则为/item-sales
。要显示用于创建新资源的表单(通过在表单中提取用户输入),您应该使用create
方法,在这种情况下,http
动词将是GET
。所以你的行动应该是这样的:
public function create()
{
// Return the view (empty form)
// app/views/item-sales/create.blade.php
return Vire::make('item-sales.create');
}
要访问/调用此方法,您应使用item-sales/create
作为URL
。然后,当您提交表单进行保存时,请使用store
方法,因此,表单的操作可能类似于route('item-sales.store')
。