sql >> データベース >  >> RDS >> Mysql

Laravelモデルが保存されたか、クエリが実行されたかを確認します

    モデルが保存されたかどうかを確認する

    save() 保存された、またはされていないブール値を返します 保存しました。したがって、次のいずれかを行うことができます:

    $saved = $myModel->save();
    
    if(!$saved){
        App::abort(500, 'Error');
    }
    

    または、次の場合に直接保存します:

    if(!$myModel->save()){
        App::abort(500, 'Error');
    }
    

    save()を呼び出すことは意味がないことに注意してください あなたの例のように2回続けて。ちなみに、モデルの保存を妨げる多くのエラーや問題は、とにかく例外をスローします...

    クエリが結果を返したかどうかを確認する

    first() nullを返します レコードが見つからない場合は、チェックが機能します。ただし、代わりにfirstOrFail()を使用することもできます これは自動的にModelNotFoundExceptionをスローします 何も見つからない場合:

    $UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();
    

    (同じことがfind()にも当てはまります およびfindOrFail()

    クエリが実行されたかどうかを確認する

    残念ながらcreate それほど簡単ではありません。ソースは次のとおりです:

    public static function create(array $attributes)
    {
        $model = new static($attributes);
    
        $model->save();
    
        return $model;
    }
    

    ご覧のとおり、$attributesを使用してモデルの新しいインスタンスが作成されます。 次に、save()を呼び出します 。ここで、save() とにかくモデルインスタンスを取得するため、trueを返す場所はわかりません。たとえば、モデルIDを確認することができます(これは、レコードが保存され、新しく作成されたIDが返された後にのみ使用できるため)

    if(!$newUser->id){
        App::abort(500, 'Some Error');
    }
    


    1. エラーコード:1136列数が行1)の値数と一致しませんsp内

    2. PHPとmysqlを使用して無制限のレベルのメニューを作成する方法

    3. PostgresのRails配列列に新しいデータが保持されない

    4. 可変列名を使用した動的更新ステートメント