- 次のような 2 つのテーブルがあります。
ユーザー
id email
1 abc@ibm.com
2 abc@hp.com
3 abc@google.com
グループメンバー
grp_id user_id
1 2
2 2
13 1
13 3
2.私のモデル
そこでは、1 人のグループ メンバーがユーザーである必要があるため、GroupMember だけが 1 対 1 の関係になります。
テーブル ユーザーに関するユーザー モデル
class Users extends Eloquent {
protected $table = "users";
}
テーブル group_members に関する GroupMember モデル
class GroupMember extends BaseModel{
protected $table = "grp_members";
public function user(){
return $this -> hasOne('Users', 'id');
}
}
3.私のサービスGroupApi.php
では、このようなクエリがある場合
class GroupApi {
public function queryGroupMembers(){
$result = GroupMember::all();
var_dump(get_class(GroupMember::all())); //CODE ONE
foreach($result as $ret){
var_dump(get_class($ret)); //CODE TWO
var_dump(get_class($ret -> user)); //CODE THREE
}
}
}
var_dump(get_class(GroupMember::all()))
ご覧のとおり、CODE ONEで呼び出すと、これが得られました
.string(39) "Illuminate\Database\Eloquent\Collection"
はい、それが私が欲しいものです。
今、CODE TWOで、それは印刷します
string(11) "GroupMember"
はい、オブジェクトも正しいですが、コードがCODE THREEになると、次のような出力が表示されて驚きます。
string(8) "GroupApi"
Users
またはのインスタンスではなく、GroupApi のインスタンスである理由GroupMember
その場合、どうすれば呼び出せ$ret -> user
ますか?
どんなアイデアでも大歓迎です、どうもありがとう。