簡體   English   中英

通過Laravel難度的兩個控制器傳遞參數/變量

[英]Passing parameter / variable through two controllers in Laravel difficulty

我有一個數據模型,我希望人們能夠查看其中的單個記錄,然后編輯/添加數據。 我設法使視圖路線起作用;

Route::get('/data/{data_token}', 'DataController@show');

Data_token是唯一的字符串。 然后使用此DataController函數。

Public function show($data) {
  $data = Data::where('data_token',$data)->first();
  return view('data.show', compact('data'))
}

之后,我可以在頁面上顯示數據,並具有一個用於編輯的表格(實際上,它用於添加不存在的數據,但是不管怎樣,相同的原理正確)。

在data.show視圖的表單上,我將其發送到其他視圖;

Route::get('/data/{data_token}/edit', 'DataController@edit');

可以使用$ request變量返回表單值,但是我不能將其與以前編輯的數據行相關聯嗎?

如何獲得{data_token}傳遞給控制器​​的編輯功能?

編輯(添加路徑文件)

注意,我在發布路線中忘記了{'data_token'}。

/請原諒

我認為您誤解了路由和控制器的工作方式。 您正在查看的是一個非常簡單的CRUD設置,如下所示;

Route::get('/data/{data_token}', 'DataController@show');
Route::get('/data/{data_token}/edit', 'DataController@edit');
Route::post('/data/{data_token}/edit', 'DataController@update');

現在您的控制器就可以了;

public function show($dataToken) { ... }
public function edit($dataToken) { ... }
public function update($dataToken, Request $request) { ... }

這樣,您就可以將表單放在編輯視圖中;

<form action="{{ route('DataController@update') }}" method="post">

Laravels路由器將始終嘗試將URI變量作為提供的方法的參數傳遞。 只要我了解您的需求,就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM