2016-02-19 56 views
0

我做的,把我帶到了錯誤的函數:調用未定義的方法照亮數據庫雄辯收藏::保存()laravel

Call to undefined method Illuminate\Database\Eloquent\Collection::save()

我不明白爲什麼它是扔

public function multiplelinkPlayerWithFamily($parent_id) 
{ 
    $player_id = Input::get('player_id'); 
    $CheckRelationship = UsersRelationship::where('parent_user_id', $parent_id)->where('child_user_id', $player_id)->first(); 

    if($CheckRelationship) { 
     return Response::json([ 
      'ok'=> false, 
      'message'=> 'The profiles are currently linked ' 
     ] ,422); 
    } 

    $user = User::find($player_id); 

    $user->parent_id = $parent_id; 
    $user->updated_by = $parent_id; 

    $user->save(); 

    $UsersRelationship = new UsersRelationship; 

    $UsersRelationship->parent_user_id = $parent_id; 
    $UsersRelationship->child_user_id = $player_id; 

    $UsersRelationship->save(); 

    $udata = ApiUserController::getLoginUserData(); 

    return Response::json([ 
     'ok'=> true, 
     'message'=> 'Linked', 
     'udata'=> $udata 
    ] ,200); 
} 

回答

0

我看不出你的模型是如何構建的,但它看起來像你實際上已經將模型轉換爲關係:即。 $UsersRelationship 它看起來像你試圖建立用戶之間的多對多關係,是否正確?

public function parents() 
{ 
    return $this->belongsToMany('User','users_relationships','child_id','parent_id'); 
} 

public function children() 
{ 
    return $this->belongsToMany('User','users_relationships','parent_id','child_id'); 
} 

一旦你得到了樹立正確的關係,您可以撥打:

$user->parents()->attach($parent_id); 
+0

你認爲塞繆爾錯誤原因的關係? – Priya

+0

很難說你的代碼,因爲我不明白你是如何建立你的關係,但得到這個權利可以走很長的路... –

+0

沒有什麼happnd Cloete我不明白這個錯誤是什麼意思 – Priya

0

通過雄辯返回的所有多結果集,無論是通過GET方法或關係,將返回集合對象。如果查詢的結果可能返回多個值,則Laravel會返回一個集合。瞭解返回集合的查詢方法可以節省調用集合上的Eloquent模型方法的問題。

您的查詢很可能會從數據庫返回多條記錄,或者從數據庫返回多條記錄。這會導致'Eloquent'返回一個Collection,即使找到的記錄數是1。由於返回的值是一個集合,我們需要遍歷返回的集合以訪問各個模型。

因此,嘗試更換您的代碼如下:

$user = User::find($player_id); 

$user->parent_id = $parent_id; 
$user->updated_by = $parent_id; 
$user->save(); 

,並取代它下面等給出:

$user = User::find($player_id); 
$user->each(function($user) 
{ 
    $user->parent_id = $parent_id; 
    $user->updated_by = $parent_id; 
    $user->save(); 
}); 

希望它可能工作。

+0

你也可以使用簡單的foreach循環方法來遍歷返回的集合以訪問個人模式。 –

+0

like:foreach($ user as $ user){ $ user-> parent_id = $ parent_id; $ user-> updated_by = $ parent_id; $ user-> save(); } –

相關問題