我看到了使用 Eloquent 的强大功能,但还没有在我的项目中充分利用它。我想用两张表来实现这一点:
//output - LinkedIn
echo User::find(42)->SocialProvider->Name
我有一个用户表,我有一个 SocialProvider 表,其中包含社交网站列表及其名称和 api 密钥信息。
我的用户表中的记录 42 有一个列“SocialProviderID”,其中包含我的 SocialProvider 表中 LinkedIn 记录的 ID。
我已将模型类中的关系定义如下
class User extends BaseModel implements UserInterface, RemindableInterface {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'dbo_RegisteredUser';
protected $primaryKey = "UserID";
public function SocialProvider() { return $this->hasOne('SocialProvider','id'); }
和
class SocialProvider extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'dbo_SocialProvider';
public function user() { return $this->belongsTo('User','SocialProviderID'); }
但是查询和结果并没有按照我的意愿执行。
有人有想法吗?
我正在使用 MSSQL,但在我更熟悉的 MYSQL 中,我希望这个 ORM 场景执行如下连接:
SELECT * FROM dbo_RegisteredUser
LEFT JOIN (dbo_SocialProvider)
ON (dboRegisteredUser.SocialProviderID=dbo_SocialProvider.id)
WHERE dbo_RegisteredUser.UserID=42
谢谢
乔恩。