2015-09-05 34 views
1

我認爲這與通常的控制器將數據傳遞給視圖稍有不同。我有一個項目,其中有一個 DocumentOne。在我的應用程序中,用戶創建一個項目。然後將它們重定向到此項目的顯示頁面。Laravel 5 - 獲取數據到一個視圖

因此,隨着項目創建以及用戶在該項目的顯示頁面上顯示項目ID。然後我提供一個選擇菜單,用戶可以選擇要顯示的文檔。所以說我在項目中ID爲1,然後決定爲這個項目顯示DocumentOne。這將顯示帶有DocumentOne輸入的表單。

當用戶填寫表單並提交時,數據被保存到數據庫中。項目ID是DocumentOne的外鍵。下面的路由設置爲DocumentOne

Route::resource('projects.documentOne', 'DocumentOneController'); 

現在我有一個鏈接到項目以1爲ID然而,對於DocumentOne的數據,如果我現在回到項目顯示頁面,然後選擇一個文件從下拉列表中,我看到的只是一個空的表單。這顯然是因爲這個控制器是

public function show(Project $project) 
{ 
    return view('projects.show', compact('project')); 
} 

所以,我從來沒有向它傳遞數據DocumentOne因爲理論上當第一次顯示的項目就不會創建。我想要做的是在項目展示頁面中選擇文檔時,將使用該文檔數據庫中的任何內容填充表單。如果數據庫中沒有任何內容,則表單將爲空。我有一個DocumentOne控制器,但我不知道我是否可以將其鏈接到Projects展示頁面。我在想在DocumentOne控制器

public function show(DocumentOne $documentOne) 
{ 
    return view('projects.show', compact('documentOne')); 
} 

但不能肯定這將工作做這樣的事情。希望我沒有太困惑,並且你明白我在嘗試什麼,希望有人能夠就如何最好地處理這種情況提供建議。

感謝

回答

1

在我以前的項目,我也應對這樣的要求,我是這麼認爲的。在這裏我的解決方案來解決這種要求

從ajax調用的實際代碼。

路線

get('setFlashData',function(Request $request){ 
     $final_response = array(); 
     $data_information = $request->except('_token'); 
     $request->session()->flash('cmg_quick_create_data', $data_information); 
     if($request->session()->has('cmg_quick_create_data')){ 
      $final_response['result']['success'] = true; 
     } 
     return response()->json($final_response); 
    }); 

但根據你的要求:

$data_information = $request->except('_token'); 
      $request->session()->flash('cmg_quick_create_data', $data_information); 

我的基本功能是,以分享快速表單數據創建部,其彈出的形式全部創建表單部分,並且每當用戶點擊「轉到完整表格」按鈕彈出時,ajax調用提到的將設置閃光數據的功能,並且在目的地側我只檢查天氣是否包含閃光數據。並根據數據處理。

@if (Session::has('cmg_quick_create_data')) { 
     {!! Form::model(Session::get('cmg_quick_create_data'),["class"=>"form-horizontal","data-parsley-validate"=>"data-parsley-validate",'role'=>'form','files'=>true]) !!} 
    @else 
     {!! Form::open(["class"=>"form-horizontal","data-parsley-validate"=>"data-parsley-validate",'role'=>'form','files'=>true]) !!} 
    @endif 

我可以理解這種解決方案可能與您的要求不同,但希望完全可以找出您的解決方案。如果我仍然不清楚,請期待您的回覆。