我正在尝试为视图提供属性(所以我可以在刀片中使用它们),而在路由中它只需要ID。让我解释一下
我正在讨论的路由Route::get('/order/{id}', 'OrderController@show');
现在在那个特定的show方法中,我想返回一个带有$order
变量的视图,另一个名为$payment
的变量由一些信息组成。这样我就可以在刀片中使用它们了。多数显示方法看起来像这样
public function show(Order $order, $payment)
{
return view('orders.show', compact('order', 'payment'));
}
在同一个控制器中,我有一个存储方法,当该方法中的所有内容都被执行时,它会通过执行此操作重定向到show方法
return $this->show($order, $payment);
但是当执行store方法并显示顺序时。该网址为order/26/store
而非order/26
。大概是因为我用
return view('orders.show', compact('order', 'payment'));
。
如何制作它以便我可以使用两个变量(刀片中),而路线看起来像'order / 26'而不是order/26/store
这里列出了我正在谈论的两条路线。
Route::get('/order/{id}/store', 'OrderController@store')->name('storeOrder');
Route::get('/order/{id}', 'OrderController@show')->name('showConfirm');
答案 0 :(得分:2)
如果您使用--resources创建了控制器。 Laravel自己制作所有路线。在使用商店功能创建smt后,它会重定向show / {id}
在商店功能中,您必须指定路线。
存储功能
public function store(Request $request)
{
$order = Order::all();
return redirect()->route('order.show', $order->id);
}
功能展示
public function show($id)
{
return view('order.show');
}