2017-12-28 19 views
0

에서 속성의 이름을 변경하려면 이름이 일치하지 않습니다.어떻게라는 모델을 가지고 할 Laravel

질문 수정할 수있는 방법이 extra_income 난 당신이 posts 테이블의 형태로 extra_payextra_income이 알고있는 것처럼 포스트 모델에 대한 속성이 그래서 extra_pay

+0

어떤 버전을 가지고 놀고 있습니까? – Chay22

+0

Laravel 5.6.0. @ Chay22 –

+0

Laravel 5.6 !!! 풀어 놓을 때 !!! ??? –

답변

0

에 매핑 할 수있다. 이를 처리하는 가장 좋은 방법은 양식의 요소 이름을 extra_income으로 변경하는 것입니다.

또는 당신이 할 수 있습니다 :

$data = request()->all(); 
$data['extra_income'] = $data['extra_pay']; 
Post::create($data); 

또는를 : 당신은 mutator 찾고있는

Post::create(request()->all() + ['extra_income' => request('extra_pay')]); 
+0

시간 내 주셔서 감사합니다. 그러나 나는 이미 그 해결책을 알고 있습니다! 문제는 프론트에서 다른 이름으로 여러 속성을 매핑했기 때문입니다! 나는 단지 내 질문을 단순화했다. 그래서 나는 그것을하는 더 좋은 방법이 있어야한다고 생각했다. –

3

. create을 사용하기 때문에 $fillable 속성에 추가하는 것을 잊지 마세요.

class Post 
{ 
    protected $fillable = [ 
     // ... 
     'extra_pay', 
    ]; 

    public function setExtraPayAttribute($value) 
    { 
     $this->attribute['extra_income'] = $value; 
    } 

} 
+0

@ Chay22 thx man –

0

당신은 최선의 선택을 양식에에

  • 변경 3 곳에서 그것을 할 수 있습니다.
  • 들어오는 요청을 병합으로 변경하십시오. $request->merge(['extra_income' => $request->extra_pay]);
  • 또는 모든 값을 수동으로 설정하여 Post :: create 메소드에서 변경하십시오.