2016-04-25 9 views
1

"User"というモデルがあります。 Eloquentの "Password"フィールドを別のテーブルから取得し、user :: all()メソッドを呼び出すと、異なるテーブルのすべての選択フィールドが結果になります。 どうすればいいですか?laravel別のテーブルのEloquentモデルのフィールド

結果は()では表示されません。

答えて

4

Eloquentモデルで$ appendsを使用して私の問題を解決しました。

私のコード:答えを

class User extends Eloquent { 
protected $table = 'user'; 
protected $attributes = ['password']; 
protected $appends = ['password']; 
public function getPasswordAttribute() 
{ 
    return $this->getPAsswordMethod(); 
} 
} 
3

あなたの質問は極端にボードと境界線ではありませんが、私はあなたにボードソリューションを提供します。

作成したモデルオブジェクトを使用して、他のテーブルとの関係を確立することができます。ユーザーに属しているパスワード表を持つことができます。

Userモデル:あなたは今、ユーザーを行うことができます

public function password() 
{ 
return $this->hasOne(Password::class, 'FK', 'PK'); 
} 

::( 'パスワード')と - >を取得([ 'フィールド名']);これにより、ユーザーと上記の関係を持つすべてのパスワードが得られます。

+0

おかげで、私は2つの異なる接続からの2のデータベースを持っている、そして、あなたは他のデータベースを照会する必要があります。その場合には、() – Ehsan

+0

@ehsanで使用する必要はありません結果を変数として格納し、クエリで渡します。テーブルが同じでキーを共有している場合は、ラーベールコレクションメソッドを見ることができます – ExohJosh

関連する問題