顯示不同的看法,我有以下的數據庫設計 Laravel 5 - 基於數據庫查詢
我有幾個不同的文件我希望用戶能夠創建。每個文檔都有自己的創建文檔或編輯的視圖。
如果他們正在創建的文檔已經被創建,他們應該會看到該文檔的編輯頁面。
此刻,我有以下
public function create(Project $project)
{
$documentTypesCreated =
$project->document()
->join('document_type', 'documents.id', '=', 'document_type.documentId')
->select('document_type.documentId', 'document_type.name')
->get();
$documentLink = $_GET['documentType'];
if($documentTypesCreated->isEmpty()){
return View::make($documentLink.'Doc.create', compact('project'));
} else {
foreach($documentTypesCreated as $documentName) {
if($documentName->name != $documentLink) {
return View::make($documentLink.'Doc.create', compact('project'));
} else {
$document = Document::find($documentName->documentId);
return View::make($documentLink.'Doc.edit', compact('project', 'document'));
}
}
}
}
打破這件事,我做了以下內容: 首先,我得到已爲項目
創建的所有文件然後我得到用戶正在嘗試從URL創建的文檔
$documentLink = $_GET['documentType'];
因此可以說,查詢返回此項目有 DocumentA DocumentB
而documentLink顯示我正在嘗試創建DocumentB。
由於DocumentB已經創建,我需要該文檔的編輯頁面。首先,我檢查,如果該查詢返回和文檔
if($documentTypesCreated->isEmpty()){
return View::make($documentLink.'Doc.create', compact('project'));
} else {
}
如果它沒有,它會顯示所選文件的創建頁面。如果這樣做了,else語句就會一命嗚呼。 在else語句,我遍歷所有文檔的查詢返回
foreach($documentTypesCreated as $documentName) {
}
我然後進行以下操作,而這正是我的邏輯是失敗
if($documentName->name != $documentLink) {
return View::make($documentLink.'Doc.create', compact('project'));
} else {
$document = Document::find($documentName->documentId);
return View::make($documentLink.'Doc.edit', compact('project', 'document'));
}
如果查詢中的文檔名稱與我嘗試創建的文檔不相同,則顯示該文檔的創建頁面。否則,我會顯示編輯頁面。
現在讓我們回到我選擇DocumentB的地方。我知道我已經創建了這個文檔,所以我應該看到它的編輯頁面。然而,由於文獻展是在查詢返回的第一個結果,上面的語句如下所示
if("DocumentA" != "DocumentB") {
return View::make($documentLink.'Doc.create', compact('project'));
} else {
$document = Document::find($documentName->documentId);
return View::make($documentLink.'Doc.edit', compact('project', 'document'));
}
所以它要顯示DocumentB的創建頁面,而不是編輯頁面。如果DocumentB是返回的第一個結果,那麼將顯示編輯頁面。
我希望這是有道理的。我怎樣才能讓它顯示文檔的正確視圖?
感謝
讓我知道如果我的回答幫助:)! – ihue
嗨,我從那以後取得了一些進展,所以我已經更新了原來的問題,以便我在哪裏遇到困難。謝謝您的幫助 –