2015-12-21 72 views
2

我有一個系統,您可以創建不同的文檔。從選擇列表中,我可以選擇例如項目簡介,並且這會顯示項目簡報表格給我,我可以添加數據來完成項目簡介。我也可以從選擇中選擇其他文件,並且顯示給我的表格適用於所選文件。Laravel 5 - 處理控制器中的不同數據

我遇到的一個問題是我爲每個文檔類型創建了一個新的數據庫表,還有一個新的模型,控制器等等。我知道如果我創建了很多類型的文檔,這將會失控,所以我決定改變一下。我的新數據庫設計是這樣的 Database design

所以我正在製作一個通用的文檔表,我可以用它來製作不同的文檔。 我希望現在有一個通用的文檔模型,所以我不需要每種類型的文檔的新模型。我面對的這個項目就是這樣。在我的項目頁面中,我有一個下拉菜單,您可以在其中選擇要創建的文檔類型。一個例子是這樣的

{!! link_to_route('projects.projectBrief.create', 'Project Brief', array($project->id)) !!} 

以上部分的路線如下

Route::model('projects.projectBrief', 'Document'); 
Route::resource('projects.projectBrief', 'Docs\DocumentController', ['except' => ['index', 'show']]); 

所以它使用的是項目簡介查看,而且還採用了通用的文檔控制。現在在我的文檔控制,此刻我的創作功能是類似如下

public function create(Project $project) 
{ 
    return View::make('projectBrief.create', compact('project')); 
} 

這是罰款這個文件,但是因爲其他文件類型將使用相同的控制器,我需要一種方法來分離的東西。我會如何去做這件事?所以如果我從select選項選擇了Reporting Document,上面的create方法應該返回reportingDoc的視圖。我怎樣才能確定返回的視圖?

感謝

回答

1

有任何數量的方式來做到這一點,我會建議增加documentType在你的鏈接形式的參數。

{!! link_to_route('projects.projectBrief.create', 
    'Project Brief', 
    array('projectId' => $project->id, 'documentType' => 'projectBrief')) !!} 

注意這將需要對控制器進行更改以獲取指定的projectId和documentType參數。

相關問題