2016-07-28 70 views
0

我有一个视图,它有一个文本编辑器,内容值为DocumentController,文本区域为CommentController。我想在同一视图中发表评论。下面是我的观点。一个视图中的两个不同的控制器

read.blade.php

<div class = "col-md-6"> 

    <div class = "form-group"> 

     <textarea id = "content">{{ $document->content }}</textarea> 

    </div> 

    <div class = "form-group"> 

     <button type = "submit" class = "btn btn-success">Approve</button> 

    </div> 
</div> 

<div class = "col-md-6"> 
    <form class = "form-vertical" method = "post" action = "{{ route ('comments') }}"> 

     <div class = "form-group {{ $errors->has('comment') ? ' has-error' : '' }}"> 

      <label for = "comment">Comment:</label> 
      <textarea class = "form-control" rows = "4" id = "comment" placeholder = "Leave a feedback"></textarea> 

      @if ($errors->has('comment')) 
       <span class = "help-block">{{ $errors->first('comment') }}</span> 
      @endif 

     </div> 

     <div class = "form-group"> 

      <button type = "submit" class = "btn btn-primary">Comment</button> 

     </div> 

     <input type = "hidden" name = "_token" value = "{{ Session::token() }}"> 

    </form> 
</div> 

这里是我的功能DocumentController访问read.blade.php的内容。

class DocumentController extends Controller 
{ 
//READ 
public function readDocuments($id) 
{ 
    //Find the document in the database and save as var. 
    $document = Document::find($id); 


    return view ('document.read')->with('document', $document); 
} 
} 

CommentController在这里,当我试图死和转储它只是得到我的令牌的请求,但在我的textarea它没有得到值的请求。我怎么解决这个问题?有小费吗?

class CommentController extends Controller 
{ 
    public function postComments(Request $request) 
    { 
     dd($request); 
     $this->validate($request, 
     [ 
      'comment' => 'required', 
     ]); 

     $commentObject = new Comment(); 

     $commentObject->comment = $request->comment; 
     $commentObject->save(); 
    } 
} 

路线为获得的内容DocumentController

Route::get('/document/{id}', 
[ 
    'uses' => '\App\Http\Controllers\[email protected]', 
    'as' => 'document.read', 
    'middleware' => 'auth', 
]); 

路线进行后使用CommentController

//COMMENT 

Route::post('/comments', 
[ 
    'uses' => '\App\Http\Controllers\[email protected]', 
    'as' => 'comments', 
]); 

回答

2

你缺少name属性您textarea注释的内容。

更改此:

<textarea class = "form-control" rows = "4" id = "comment" placeholder = "Leave a feedback"></textarea> 

要这样:

<textarea class="form-control" rows="4" name="comment" id="comment" placeholder="Leave feedback"></textarea> 
+0

伟大的!为什么我需要将'name =“comment”'而不是'id =“comment”'?因为我的textarea中已经有了一个标识符。 – Francisunoxx

+0

在这种特定情况下,区别在于HTML表单是一组具有'name'的输入元素,但是'id'是主要由CSS和JavaScript使用的全局元素选择器。如果没有字段名称,表单不知道该调用该值,因此完全跳过该字段。 – Qevo

+0

要清楚的是,在表单输入中设置'name'和'id'是非常普遍的。在最近的记忆中,我所做过的每一个表格都有各自的元素。请记住'id'必须是全局唯一的,'name'在表单中必须是唯一的。 – Qevo

相关问题