2015-07-10 63 views
1

我正在尋找一種將post_id值插入到$ request-> all()中的方法。我到目前爲止的代碼是:

 public function createReview(ReviewRequest $request, $id) { 

     $review = Auth::user()->reviews()->create($request->all()); 
     $review->task_id = $id; 
     $review->save(); 

     return $review; 
     } 

即使其工作,我正在尋找更乾淨的方式來做到這一點。我的模型是:

User: hasMany->reviews ; hasMany->task 
Review: belongsTo->user ; belongsTo->task 
Task: belongsTo->user ; hasMany->reviews 

回答

0

好辦法之一是採用了隱藏的輸入字段,如:

<input type="hidden" name="task_id" value="{{$task->id}}"> 

,或者如果您使用照亮\ HTML \ HtmlServiceProvider刀片

{!! Form::hidden('task_id', $task->id) !!} 

然後,您的createReview方法看起來會更清潔:

// Controller 

    public function createReview(ReviewRequest $request) { 
    $review = Auth::user()->reviews()->create($request->all()); 

    return $review; 
    } 

不要忘了調整您的routes.php。您還可以在ReviewRequest中添加

// ReviewRequest.php 

    $rules = [ ..., 
    'task_id' => 'required', 
    ]; 

以符合您的規則,以確保每次審覈都屬於您創建任務時的任務。

相關問題