簡體   English   中英

調用未定義的方法Illuminate \\ Database \\ Eloquent \\ Collection :: save()laravel

[英]Call to undefined method Illuminate\Database\Eloquent\Collection::save() 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);
}

我看不到您的模型是如何構造的,但是看起來您實際上已經將模型轉換為關系:即。 $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);

Eloquent通過get方法或關系返回的所有多結果集都將返回一個集合對象。 如果查詢的結果可能返回多個值,Laravel將返回一個集合。 了解返回集合的查詢方法將為您節省在集合上調用Eloquent模型方法的問題。

您的查詢最有可能從數據庫返回一個以上的記錄,或者從數據庫中返回一個以上的記錄。 即使找到的記錄數為1,這也將導致'Eloquent'返回一個Collection。 因為返回的值是Collection,所以我們需要遍歷返回的集合以訪問單個Model。

因此,請嘗試替換以下代碼:

$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();
});

希望它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM