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つのフィールドになるだろう!
と分散でいるようですPCustomer :: where( 'Reference'、5955) - >( 'country') - > get(); ' しかし、これはドキュメントとは異なると思われます。 – Jim
いいえ、 ' - > country'を実行すると、国のレコードだけが返されます。これは予想される動作です。 1つのレコードしか期待していないので、 'get()'を 'first()'に置き換えるほうが良いという点を除いて、あなたの解決策は正しいです。確かにあなたがしたことに固執することができますが、それはレコードの代わりに[コレクション](https://laravel.com/docs/5.4/eloquent-collections)を返します。 – Fahmi