Laravel - 具有多个属性的视图,仅具有I​​D的URL

时间:2018-03-30 09:51:50

标签: php laravel laravel-5 laravel-4

我正在尝试为视图提供属性(所以我可以在刀片中使用它们),而在路由中它只需要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。大概是因为我用

show方法中的

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');

1 个答案:

答案 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');
}