2017-09-09 29 views
0

私はLaravelアプリケーションを開発しています。各プロジェクトに関して、各タスクファイルにコメントフォームを追加する必要があります。 これは私がビューファイルでタスクフォルダ内のファイルをshow.blade.phpこのフォームファイルをインクルードするつもりですブレードファイルをLaravel 5.2に含める方法

<form class="form-vertical" role="form" method="post" action="{{ route('projects.comments.create', $project->id) }}"> 
     <div class="form-group{{ $errors->has('comments') ? ' has-error' : '' }}"> 
      <textarea name="comments" class="form-control" style="width:80%;" id="comment" rows="5" cols="5"></textarea> 
      @if ($errors->has('comments')) 
       <span class="help-block">{{ $errors->first('comments') }}</span> 
      @endif 
     </div> 

     <div class="form-group"> 
      <button type="submit" class="btn btn-info">Add Comment</button> 
     </div> 
     <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
    </form> 

form.blade.phpコメント/です。 これは

<h2>{{ $tasks->project->project_name }}</h2> 
<hr> 

{{$tasks->task_name}} 
<hr> 

{!!$tasks->body!!} 

<hr> 

@include('comments.form') 

commentController.php

public function postNewComment(Request $request, $id, Comment $comment) 
    { 
     $this->validate($request, [ 
      'comments'  => 'required|min:5', 
     ]); 

     $comment->comments  = $request->input('comments'); 
     $comment->project_id  = $id; 
     $comment->user_id  = Auth::user()->id; 
     $comment->save(); 

     return redirect()->back()->with('info', 'Comment posted successfully'); 
    } 

routes.phpの

Route::post('projects/{projects}/comments', [ 
    'uses' => '[email protected]', 
    'as' => 'projects.comments.create', 
    'middleware' => ['auth'] 
]); 

show.blade.phpですが、最終的には、このエラーのマッサージを得た

Undefined variable: project (View: C:\Users\Nalaka\Desktop\acxian\resources\views\comments\form.blade.php) 

どのようにすることができますこの問題を解決するレム?

+0

あなたが前に '$ tasks->プロジェクト - > IDに' $プロジェクト - > id'を変更する – C2486

+2

試しform.blade' '含ま' $のproject'を持っている必要があります' –

答えて

1

あなたはどこにでも$projectを定義していないが、あなたは、あなたが$tasks->projectデータでも、そこにプロジェクトIDを持っているならば、あなたはコメント/でビューの変更にformタグを、この変数を使用することができますので、あなたがshow.blade.phpですでにプロジェクト名を取得している、そこから$tasksを持っています form.blade.php以下のように:

<form class="form-vertical" role="form" method="post" action="{{ route('projects.comments.create', $tasks->project->id) }}"> 
+0

プロジェクトの各タスクでコメントを保存する必要がある場合、別の質問がありますコメント表のmn? – Lilan

+0

はい、コメントテーブルのタスクテーブルの参照を与える必要があります –

+0

今すぐ私は私のshow.blade.phpファイルにコメントボックスを表示することができますが、新しいコメントを投稿すると、このような新しいエラーメッセージが生成されます**クラスApp \ Http \ \ CommentsControllerは存在しません** – Lilan

関連する問題