2016-04-18 18 views
2

私は自動でそれぞれ埋めるuserIDその後、users表はidを増やしたときに私が欲しい.NowそのuserIDという名前の列がそのidという名前の列がありusersprofiles .IN usersテーブルの名前とprofilesテーブルに2つのテーブルを持っています。laravelの別のデータベーステーブルから値を取得する方法は?

誰でもプロファイルを作成すると、userID列はログインusersテーブルidに従って自動的に埋められます。どうすればいいですか?

ユーザーモデル:

class User extends Authenticatable 
{ 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $table ="users"; 
    protected $fillable = [ 
     'userName', 'email', 'password', 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 

    public function profileHave(){ 
     return $this->hasOne('App\Profile','userID'); 
    } 
} 

プロファイルモデル:

class Profile extends Model 
{ 
    // 
    protected $table = "profiles"; 
    public $fillable = ["userID","firstName","lastName","middleName","DOB","gender","featuredProfile","email","phone","summary","profilePic"]; 

    public function userHave(){ 
     return $this->belongsTo('App\User','userID'); 
    } 
} 

が、私はprofilesの表に、ユーザーにプロファイルを追加するときuserID列があるblank.Butそれはする必要がありますusersテーブルのログインIDに従って入力してください。

ところで私はLaravelで新しいです。おかげさまで それにユーザーを追加し、プロファイルを保存するとき

答えて

1

この

$id = Auth::id(); 

などのユーザIDを取得し、その後、私は `$プロフィール - >ユーザー= $ユーザを追加

$profile->userID = $id 
+0

私はそれらをどこに追加するのか本当に分かりません。 –

+0

データベースにプロファイルデータを保存するとき laravelにデータを保存するには、プロファイルオブジェクトを作成して、そのすべてのプロパティを入力する必要があります。 '$ profile = new Profile() $ profile-> firstName = 'test' $ profile-> lastName = 'テスト' $ profile-> userID = Auth :: id(); $ profile-> save() ' –

+0

' Class 'App \ Http \ Controllers \ Auth' not found 'を保存したときに表示されます。 –

0

$profile->userHave = $user 

物事のカップル:

  • をごProfileモデルが充填可能であることをuserIDを必要としません。これはあなたの関係で満たされているので、本当に埋めるべきではありません。

  • 関係はちょっと変わっています。それは実際に、関係をフェッチするために使用すると予想される属性の名前でなければなりません。

    $profile->user = $user; 
    
  • 最後に、が考える:これにより

    public function user() 
    { 
        return $this->belongsTo('App\User','userID'); 
    } 
    

    、あなたは次のようにプロファイルにユーザーを追加します。たとえば、私はちょうどuserがあなたのプロファイルにユーザ関係を呼び出します実際にプロファイルモデルが必要かどうか。

    プロファイルモデルのすべての属性は、ユーザーの属性です。すべてのユーザーに対してプロファイルを作成する予定がある場合は、プロファイルに異なるモデルを使用する必要はありません。

+0

のようなプロファイルにユーザープロパティにこの値を割り当てます。 「これ? in userController? –

+0

それは異なります。あなたのプロフィールはどこに作成/保存していますか?そこにそれを置きます。 – Scopey

+0

http:// pastebin。com/S3QCWAZ5、ここで私は追加しますが、$ userは未定義変数です。 –

関連する問題