2016-05-10 7 views
0

私は2つのLaravel/Eloquentモデルを持っていますので、それらのフィールドにフィールドをもう1つ追加したいと思います。Eloquentモデルにフィールドを追加

モデル 'Car'は 'cars'テーブルからデータを取得し、 'id'、 'model'、 'color'、 'price'の各フィールドを持ちます。 Model 'Person'には、 'cars'テーブルからの外部キーである 'id'、 'name'、 'car_id'というフィールドがあります。モデル 'Person'に 'car'という名前のフィールドを持たせてください。このフィールドには、既存のcar_idに応じて、 'Car'モデルの車モデルが含まれています。

use App\Models\Car; 

    class Person extends Model { 

     protected $car = array(Car::find($this->car_id)); 
    } 

しかし、それは(「『』予期しない構文エラー、 『のようなエラー(』、期待」))失敗した:私のようなものを試してみました。解決策は何でしょうか?ありがとう!

答えて

0

これはその仕組みではありません。

人は車を所有することができます。あなたが人とを得ることができ、あなたの車のテーブルがNULL可能person_id列を持っている、とあなたのUserモデル今

public function car() { 
     return $this->hasOne('App\Role'); 
} 

にこれを追加する必要があり、すべての人が自分のデータベースに一台の車を持っていると仮定しましょう彼の車の情報は、この

ようなものです
User::where('id',$id)->with('car')->get(); 

私はあなたがここに

0

あなたが最初One-To-Many関係を定義する必要がポイントを得る願っています。次に、人の車のモデルを取得します。

$carModel = Person::find($personId)->car->model; 
0

Eloquent Relationshipsをご覧ください。あなたがしようとしているのは、CarPersonモデルの間の関係を作成することです。 1人または複数の車を所有することができるのはあなた次第です。私はあなたに人が複数の車を持つように勧めています。

class Person extends Model 
{ 
    public function cars() 
    { 
     return $this->hasMany(App\Car::class); 
    } 
} 

車は人に属し、そのモデルはそれを知っている必要があります:もちろん

class Car extends Model 
{ 
    public function person() 
    { 
     return $this->belongsTo(App\Person::class); 
    } 
} 

、作成

だから、人のモデルは、それが複数の車を持っていることを知るべきですテーブルperson_idCARSテーブルに追加する必要があります。

0

まあ、私は必要なことだった:

protected $appends = ['car']; 

    public function getTypeAttribute($car) 
    { 
     return Car::find($this->car_id)->model; 
    } 

:)あなたのすべてに感謝し、

それはすべてのシリアル化についてだったと '保護された$が追加します'
関連する問題