2017-06-12 5 views
0

私は2つのテーブルを持っています。Laravel 5.4まあまあではないかっこいい反応

class Countries extends Model 
{ 
    protected $table="Countries"; 
    protected $primaryKey = 'entry'; 

    function pcustomer() 
     { 
      return $this->hasMany('App\PCustomer','country','entry'); 
     } 
} 

entry (index field) 
Countryname 
Abbrev 

私の他のテーブルは、私は2つのモデルが設定した

Reference (index field) 
country (the foreign key) 

を持っている(とりわけ)PCustomersです:

一つの表、国は、単にVフィールドがあります

および

私はコントローラに置かれ、これを試してみること

public function PCustomers() 
     { 
      $customer = PCustomer::find(5955)->country; 
      dd($customer); 
     } 

私は5955が存在することがわかっているし、その国は74

DDでは、74を返しませんが、何も。

それは

$customer = PCustomer::find(5955); 

になるように、私は国をドロップした場合、私は完全なフィールドを持つ通常、正しいコレクションを取得します。私は起こるはずと思った何

である - >国私はむしろヘルプちょうど74

感謝よりも、国からのレコードの詳細に加えて3つのフィールドになるだろう!

+0

と分散でいるようですPCustomer :: where( 'Reference'、5955) - >( 'country') - > get(); ' しかし、これはドキュメントとは異なると思われます。 – Jim

+0

いいえ、 ' - > country'を実行すると、国のレコードだけが返されます。これは予想される動作です。 1つのレコードしか期待していないので、 'get()'を 'first()'に置き換えるほうが良いという点を除いて、あなたの解決策は正しいです。確かにあなたがしたことに固執することができますが、それはレコードの代わりに[コレクション](https://laravel.com/docs/5.4/eloquent-collections)を返します。 – Fahmi

答えて

0

私は、私は次の行でこれを取得することができますが見つかりました:= `$の顧客:私は、私は次の行でこれを取得することができた

$customer = PCustomer::where('Reference',5955)->with('country')->get(); 

が、これは、文書

関連する問題