2016-05-03 12 views
0

リソースコントローラの更新方法でモデルのプロパティの類似した名前を持ってもらうことは可能です:はolnyフォームフィールドは、私はこのような多くの分野を持っている<code>Course</code>モデル持って

course_id 
title 
description 
creator 
start_date 
end_date 
reg_start_date 
reg_end_date 
picture 
lesson_count 
cost 
status 
active 
teacher 
created_at 
updated_at 
deleted_at 

を私は指定されたモデルを編集するためのフォームを持っています。編集フォームタグのaction属性はcourse.updateルートを参照しています。編集フォームで

、上記モデルプロパティの同じ名前のフィールドに加えて、Courseモデルに関連する(および多対多の関係や他の操作のために使用される)ではない、他の多くのフォームフィールドがある

今公衆に私はEloquent update()メソッドを使用したい場合、無関係なフィールド名の数が多いので、着信要求にexcept()メソッドを使用する必要があります。このように:あなたは()メソッドを除い> $要求 - の使用に見たよう

public 
     function update (StoreCourseRequest $request, $id) 
     { 
      $data = $request->except(['search_node', '_token', 'start_date_picker', 'end_date_picker', 'reg_start_date_picker', 'reg_end_date_picker', 'orgLevels', 'courseCats','allLessonsTable_length']); 

      $course = Course::findOrFail($id); 

      $course->update($data); 

      $course->org_levels()->sync($request->get('orgLevels')); 
      $course->course_categories()->sync($request->get('courseCats')); 

      $result = ['success' => true]; 

      return $result; 
     } 

、私は$course->update($data);で使用するための唯一の適切な属性をフィルタリングすることに多くのフィールド名を渡されました。

私の質問は、フィールド名から同じ名前のモデル属性のみを取得できる方法はありますか?

答えて

1

あなたの質問を正しく理解していれば、受信リクエストにexcept()メソッドを使用する必要がないようにしようとしていますが、正しいですか?

この場合、スキップして、一致するフィールドのみを更新する(メソッドクラスでは「fillable」として指定されている場合)ので、リクエスト全体をupdate()メソッドに渡すことができます。このプロセスは"mass-assignment"と呼ばれます。

関連する問題