2016-05-19 5 views
0

私は何かがうまくいく理由を理解しようとしています。私はユーザーモデルを持っており、その中にユーザーが1つのプロジェクトを持つことができると述べています。 なぜ関係が働くのかを理解する

public function project() 
{ 
    return $this->hasOne('App\Project', 'userId'); 
} 

はその後、私のプロジェクトのモデルの中で、私は、ユーザーがプロジェクト

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

だから私はこれを理解方法は、ユーザーが許可されなければならない1つのプロジェクトだけに属している定義しますか?だから私のプロジェクトコントローラ内で、私は私の店の機能があります。私は文句を言わない、それをすべての上に行くが、私は、入力されたユーザを取得する場所、私は基本的に以下の

$newProject = new Project(); 
$newProject->projectName = Input::get('projectName'); 
$newProject->projectValue = Input::get('projectValue'); 
$newProject->userId = Input::get('user'); 
$newProject->save(); 

は今、これは常にユーザーIDに記録されます。だから私はシステムにログインし、私は新しいプロジェクトを作成すると言う。このプロジェクトは私のuserIDを持っています。これは正常に動作します。

私の質問は、なぜ同じIDで2番目のプロジェクトを作成できるのですか?だから私がシステムにログインしていれば、私の名前の下に私が望むだけ多くのプロジェクトを作ることができます。これは、私の関係が定義されているものに反しないのでしょうか?関係によると、私は1つのプロジェクトを作成するだけでよいはずです。

私は本当にこれが許可されている理由についての情報を探していますか?

おかげ一つに一つで

+0

現在の外部キーの値を追加/更新していると仮定して、Laravelを実行します。 – xdevnull

+0

しかし、userIdを設定して外部キー値を追加していませんか? –

+0

追加/更新しています。'' '$ newProject-> userId = Input :: get( 'user');' ''このコード行 – xdevnull

答えて

関連する問題