Eloquent を使用することの威力はわかりますが、自分のプロジェクトではまだ十分に活用できていません。2つのテーブルでこれを達成したい:
//output - LinkedIn
echo User::find(42)->SocialProvider->Name
ユーザー テーブルがあり、名前と API キー情報を含むソーシャル サイトのリストを含む SocialProvider テーブルがあります。
ユーザーのテーブルのレコード 42 には、SocialProvider テーブルの LinkedIn レコードの ID を持つ列「SocialProviderID」があります。
モデルクラスの関係を次のように定義しました
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
ありがとう
ジョン。