私はLaravelが初めてです。レコードが存在するかどうかを確認するにはどうすればよいですか?
$user = User::where('email', '=', Input::get('email'));
$userレコードがあるかどうかを確認するには、ここで何ができますか?
私は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
}
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);
}
指定されたレコード 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!
}
同じ電子メールを持つレコードが存在しない場合にデータベースにレコードを挿入する場合は、次のように実行できます。
$user = User::updateOrCreate(
['email' => Input::get('email')],
['first_name' => 'Test', 'last_name' => 'Test']
);
メソッドのupdateOrCreate最初の引数は、関連付けられたテーブル内のレコードを一意に識別する列をリストし、2 番目の引数は挿入または更新する値で構成されます。
ここでドキュメントを確認できます: Laravel upserts doc
最短の作業オプション:
// 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();
これは、私が役立つと思うものへのリンクです https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/