2014-06-12 3 views
4

Input::all()의 데이터를 모델과 병합하고 결과를 저장하는 것이 가능한지 알고 싶습니다.Laravel Eloquent : 입력으로 모델 병합

$product = Product::find(1); // Eloquent Model 

$product->merge(Input::all()); // This is what I am looking for :) 

$product->save(); 

답변

3

당신은 update 방법을 사용해야합니다 : 나는 다음과 같은 일을하고 싶습니다 :

는 명확히하기 위해

$product->update(Input::all()); 

을하지만 대신

$product->update(Input::only('name', 'type...')); 
+0

감사합니다. 그냥 시도했지만 저장()에 데이터를 전달 (불행히도) 아무것도 저장하지 않습니다 :/당신이 이것을 시도 했습니까? – user3518571

+0

당신이 옳다면, 대답은 – Razor

+0

입니다. 새로운 모델을 인스턴스화하면'$ product = new Product;'당신은'save' 메소드를 사용할 수 있습니다. – Razor

0
only 방법을 사용하는 것이 좋습니다

Razor의 답변 외에도 새로운 모델을 생성해야하는 경우 y 사용할 수있는 내용은 다음과 같습니다.

$product = Product::create(Input::all()); 
0

자세한 내용은 모델의 fill() 방법을 사용하십시오. 이것은 우리가 저장 하기 전에 값을 병합 한 후 속성을 변경할 수 있습니다 :

$product->fill($request->all()); 
$product->foo = 'bar'; 
$product->save(); 

우리가 properly defined 모델의 $fillable 속성을 한 경우, (새로운 버전 또는 $request->only(...)) Input::only(...)를 사용할 필요가 없습니다.