Php 将变量从第一个控制器传递到第二个控制器

Php 将变量从第一个控制器传递到第二个控制器,php,laravel,model-view-controller,laravel-5,Php,Laravel,Model View Controller,Laravel 5,这是我的两条路线,它们在每个视图上传递变量 Route::resource('product', 'ProductController'); Route::resource('booking', 'BookingController'); 我使用ProductController创建了一个显示当前产品(例如)的视图 现在我创建了另一个视图来预订这个产品,然后使用@include('partials.booking')将它(模式弹出窗口)插入到产品视图中 问题是如何将产品id传递给Booking

这是我的两条路线,它们在每个视图上传递变量

Route::resource('product', 'ProductController');
Route::resource('booking', 'BookingController');
我使用ProductController创建了一个显示当前产品(例如)的视图

现在我创建了另一个视图来预订这个产品,然后使用@include('partials.booking')将它(模式弹出窗口)插入到产品视图中


问题是如何将产品id传递给BookingController?这是可能的?

这在很大程度上取决于您在前端使用的框架(jquery等)

通常你的弹出窗口应该知道它指的是什么产品。例如,你可以这样做

<!-- this is your html / blade -->
<div class="booking-popup">
  <button class="book" data-product="{{$product->id}}">Book Now!</button>
</div>
然后,您可以简单地访问产品id作为路由的参数

编辑2 只需从控制器访问它(hidde表单输入的情况)

若你们是通过route定义的,那个么你们只需选择你们设置为占位符的内容

Route::post('product/{product}/book', 'BookingController@store');
控制器然后:

public function store(\Illuminate\Http\Request $request, $product) {
   dd($product)
}

这在很大程度上取决于您在前端使用的框架(jquery等)

通常你的弹出窗口应该知道它指的是什么产品。例如,你可以这样做

<!-- this is your html / blade -->
<div class="booking-popup">
  <button class="book" data-product="{{$product->id}}">Book Now!</button>
</div>
然后,您可以简单地访问产品id作为路由的参数

编辑2 只需从控制器访问它(hidde表单输入的情况)

若你们是通过route定义的,那个么你们只需选择你们设置为占位符的内容

Route::post('product/{product}/book', 'BookingController@store');
控制器然后:

public function store(\Illuminate\Http\Request $request, $product) {
   dd($product)
}

将您的模型页面包括为
@Include('partials.booking',['product'=>$product])

将表单更改为操作
和最重要的添加令牌隐藏字段(如果您的CSRF中间件已启用)

把你的路线改成
Route::post('product/{product_id}/booking','BookingController@store');

将您的模型页面包含为
@Include('partials.booking',['product'=>$product])

将表单更改为操作
和最重要的添加令牌隐藏字段(如果您的CSRF中间件已启用)

把你的路线改成
Route::post('product/{product_id}/booking','BookingController@store');

您可以将
$product->id
放在一个隐藏字段中,然后如何将产品id传递给BookingController?
部分。booking
是一个表单,对吗?,因此,当提交时,您可以从BookingController获得它。这是一个带有
预订路线的表单。存储
您可以将
$product->id
放在一个隐藏字段中,然后如何将产品id传递给BookingController?
部分。预订
是一个表单吗?,因此,当提交它时,您可以从BookingControlleries获得它。它是一个表单,路径为
booking.store
App\Http\Controllers\BookingController::store()缺少参数2这是控制器
store(Request$Request$id)
我使用数据产品=“{{$product->id}}”传递id,但我得到了这个错误,谢谢。我刚刚使用了
,然后得到了请求值
$request->product\u id缺少App\Http\Controllers\BookingController::store()的参数2这是控制器
store(Request$Request$id)
我使用data product=“{{{$product->id}}”传递id,但我收到了这个错误谢谢。我刚刚使用了
,然后得到了请求值
$request->product\u id