私はLaravelに慣れていません。初心者の質問はお許しくださいが、レコードが存在するかどうかはどうすればわかりますか?
$user = User::where('email', '=', Input::get('email'));
$user
にレコードがあるかどうかを確認するために、ここで何ができますか?
あとでユーザーと作業するのか、それとも存在するのかを確認するだけなのかによって異なります。
ユーザーオブジェクトが存在する場合にそれを使用する場合
$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
}
最善の解決策の1つは、firstOrNew
またはfirstOrCreate
メソッドを使用することです。 ドキュメンテーション は両方についてより多くの詳細を持っています。
if($user->isEmpty()){
// has no records
}
Eloquentはコレクションを使用しています。次のリンクを参照してください。 https://laravel.com/docs/5.4/eloquent-collections
if (User::where('email', Input::get('email'))->exists()) {
// exists
}
Laravel 5.6.26v
主キー(電子メールまたはID)を介して既存のレコードを検索する
$user = DB::table('users')->where('email',$email)->first();
それから
if(!$user){
//user is not found
}
if($user){
// user found
}
ユーザーにユーザーのような上記のクエリを使用して「use DB」とテーブル名userを複数にする
if (User::where('email', '[email protected]')->first())
// It exists
else
// It does not exist
存在を確認するだけでよい場合は、first()
ではなくcount()
を使用してください。
first()
は より高速です count()
はすべてのマッチを数えますが、単一のマッチをチェックします。
if ($u = User::where('email', '=', $value)->first())
{
// do something with $u
return 'exists';
} else {
return 'nope';
}
try/catchで動作します
- > get()はまだ空の配列を返す
あなたのコントローラーで
$this->validate($request, [
'email' => 'required|unique:user|email',
]);
あなたの意見の中 - すでに存在しているメッセージを表示
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
指定されたレコード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);
ホームそれは役立ちます!
私は以下の方法が同じことを達成するための最も簡単な方法だと思います:
$user = User::where('email', '=', $request->input('email'))->first();
if ($user) {
// user doesn't exist!
}
ここに役立つと思うものへのリンクがあります https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/
laravel eloquentには、デフォルトのexists()メソッドがあります。以下の例を参照してください。
if(User::where('id', $user_id )->exists()){ // your code... }
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
// user doesn't exist
}
と書くことができます
if (User::where('email', '=', Input::get('email'))->first() === null) {
// user doesn't exist
}
元の文で$ userを使用しているのであれば、一時変数を割り当てずにtrueまたはfalseを返します。
詳細検証を使用できます。
しかし、このコードも良いです:
$user = User::where('email', $request->input('email'))->count();
if($user > 0)
{
echo "There is data";
}
else
echo "No data";
レコードがあるかどうかを知るのは簡単です。
$user = User::where('email', '=', Input::get('email'))->get();
if(count($user) > 0)
{
echo "There is data";
}
else
echo "No data";
これは、特定のメールアドレスがテーブルに存在するかどうかを確認します。
if (isset(User::where('email', Input::get('email'))->value('email')))
{
// Input::get('email') exist in the table
}
$email = User::find($request->email);
If($email->count()>0)
<h1>Email exist, please make new email address</h1>
endif
とてもシンプル
if (User::where('email', $request->input('email')->first())
{
// User exists
} else{
// User does not exist
}
同じユーザーのパスワードを取得
$user = User::where('email', '=', $email)->first();
$user->password
dd($user);
ありがとう
これは、要求されたEメールがユーザーテーブルに存在するかどうかを確認します。
if (User::where('email', $request->email)->exists()) {
//email exists in user table
}
null
ステートメント内でif
をチェックすることで、クエリが終了した直後にLaravelが404を返すことを防ぎます。
if ( User::find( $userId ) === null ) {
return "user does not exist";
}
else {
$user = User::find( $userId );
return $user;
}
ユーザーが見つかった場合は二重照会を実行するようですが、他に信頼性のある解決策が見つからないようです。
$user = User::where('email', request('email')->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');