2016-05-27 4 views
0

最初に注意したいのは、自分のretrspective関数内にリダイレクトがある場合、これがうまく動作することです。 基本的に、私はプロジェクトを作成します。プロジェクト内では、私は多くの種類の文書を作成できます。関係はすべて適切に設定されています。
プロジェクト内には、作成できるさまざまな文書へのリンクがあります。これらは、(中ビューファイルにリダイレクトする

<li>{!! link_to_route('projects.document.create', 'Some Document', array($project, 'someDocument')) !!}</li> 

のようなルートは、この

Route::get('projects/{projects}/document/{name}', array('as' => 'projects.document.create', 'uses' => '[email protected]')); 

のようなものです。そして、私のDocumentControllerに、私はこの

public function create(Project $project, $name) 
{ 
    $this->redirectResult($project, $name); 
} 

redirectResult機能は、本質的に、選択された文書かどうかをチェックしませんですこのケースsomeDocument)は以前に作成されています(プロジェクトには多くのドキュメントがありますが、各タイプのドキュメントは1つだけです)。 プロジェクト用に文書が作成されていない場合は、その文書の作成ビューが表示されます。編集ビューを表示する前に作成されている場合。これは関数です

ここでドキュメントを選択すると、空白のページになります。 URLは正しいですが、エラーや何もない、単に空白のページです。奇妙なことは私が古い方法(これは上記と同じように動作するはずです)を行うときです それは動作します。古い方法は、上記と全く同じであるが、私の関数を作成し、この代わりに

public function create(Project $project, $name) 
{ 
    $selectedDoc = Document::where('project_id', '=', $project->id) 
     ->where('name', '=', $name) 
     ->first(); 

    if(!$selectedDoc) { 
     return View::make($name.'.create', compact('project')); 
    } 
    else { 
     return View::make($name . '.edit', compact('project', 'selectedDoc')); 
    } 
} 

ようなので、唯一異なるコードを作るのビューではなく、このコードを持つ関数を呼び出すよりも、関数内で直接であるということです。私はこのすべてのリピートコードをそれ自身の関数に入れたいので、私は をすべてのドキュメントコントローラ関数に対して繰り返さなければなりません。

新しい方法で空白のページが表示される理由はありますか?明白な点を除外するために、ビューファイルを含むフォルダが正しく設定されています。したがって、上記の例のビューフォルダ内では、 私はsomeDocumentというフォルダを持っており、その中にedit.blade.phpがあります。

これがなぜ評価されているのかに関する情報。

ありがとうございます。

答えて

2

Er ...関数を返す必要があります。

public function create(Project $project, $name) 
{ 
    return $this->redirectResult($project, $name); 
} 
+0

うわー、私はそれを逃したとは思わない:-)ありがとう –

関連する問題