366

私はLaravelが初めてです。レコードが存在するかどうかを確認するにはどうすればよいですか?

$user = User::where('email', '=', Input::get('email'));

$userレコードがあるかどうかを確認するには、ここで何ができますか?

4

30 に答える 30

763

後でユーザーと作業するか、存在するかどうかのみを確認するかによって異なります。

ユーザー オブジェクトが存在する場合にそれを使用する場合は、次のようにします。

$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
   // user doesn't exist
}

そして、あなたがチェックしたいだけなら

if (User::where('email', '=', Input::get('email'))->count() > 0) {
   // user found
}

またはさらに良い

if (User::where('email', '=', Input::get('email'))->exists()) {
   // user found
}
于 2014-11-23T22:31:24.280 に答える
1

Validatorでシンプル、快適、わかりやすい

class CustomerController extends Controller
{
    public function register(Request $request)
    {

        $validator = Validator::make($request->all(), [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:customers',
            'phone' => 'required|string|max:255|unique:customers',
            'password' => 'required|string|min:6|confirmed',
        ]);

        if ($validator->fails()) {
            return response(['errors' => $validator->errors()->all()], 422);
        }
于 2020-06-28T10:30:46.913 に答える
0

指定されたレコード ID が Db テーブルに存在するかどうかを確認するためのメソッド (自分用) の下に作成されました。

private function isModelRecordExist($model, $recordId)
{
    if (!$recordId) return false;

    $count = $model->where(['id' => $recordId])->count();

    return $count ? true : false;
}

// To Test
$recordId = 5;
$status = $this->isModelRecordExist( (new MyTestModel()), $recordId);

ホーム 役に立ちます!

于 2019-01-23T19:19:30.797 に答える
0

以下の方法が同じことを達成する最も簡単な方法だと思います:

    $user = User::where('email', '=', $request->input('email'))->first();
    if ($user) {
       // user doesn't exist!
    }
于 2019-01-23T12:17:50.403 に答える
0

同じ電子メールを持つレコードが存在しない場合にデータベースにレコードを挿入する場合は、次のように実行できます。

$user = User::updateOrCreate(
    ['email' => Input::get('email')],
    ['first_name' => 'Test', 'last_name' => 'Test']
);

メソッドのupdateOrCreate最初の引数は、関連付けられたテーブル内のレコードを一意に識別する列をリストし、2 番目の引数は挿入または更新する値で構成されます。

ここでドキュメントを確認できます: Laravel upserts doc

于 2021-05-19T08:41:07.713 に答える
0

最短の作業オプション:

// if you need to do something with the user 
if ($user = User::whereEmail(Input::get('email'))->first()) {

    // ...

}

// otherwise
$userExists = User::whereEmail(Input::get('email'))->exists();
于 2018-09-30T01:58:17.293 に答える
-1

これは、私が役立つと思うものへのリンクです https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/

于 2019-07-04T14:38:24.403 に答える