我是Laravel的新手。请原谅新手问题,但如何查找是否存在记录?
$user = User::where('email', '=', Input::get('email'));
我可以在此处查看$user
是否有记录?
答案 0 :(得分:429)
这取决于您是否希望之后与用户合作或仅检查是否存在。
如果您想使用用户对象(如果存在):
$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 :(得分:21)
最好的解决方案之一是使用firstOrNew
或firstOrCreate
方法。 documentation有更多详细信息。
答案 2 :(得分:8)
if($user->isEmpty()){
// has no records
}
Eloquent使用集合。 请参阅以下链接:https://laravel.com/docs/5.4/eloquent-collections
答案 3 :(得分:7)
if (User::where('email', Input::get('email'))->exists()) {
// exists
}
答案 4 :(得分:3)
Laravel 5.6.26v
通过主键(电子邮件或id)查找现有记录
if(!$user){
//user is not found
}
if($user){
// user found
}
然后
steps()
包括“使用数据库”,表名用户使用上述查询像用户对用户一样变成复数
答案 5 :(得分:1)
if ($u = User::where('email', '=', $value)->first())
{
// do something with $u
return 'exists';
} else {
return 'nope';
}
可以使用try / catch
-> get()仍将返回一个空数组
答案 6 :(得分:1)
我使用 empty() 函数解决了这个问题:
$user = User::where('email', Input::get('email'))->get()->first();
//for example:
if (!empty($user))
User::destroy($user->id);
答案 7 :(得分:1)
在laravel雄辩中,具有默认的exist()方法,请参见后面的示例。
union all
答案 8 :(得分:1)
if (User::where('email', 'user@email.com')->first())
// It exists
else
// It does not exist
如果只需要检查是否存在,请使用first()
,而不要使用count()
。
first()
更快,因为它检查单个匹配项,而count()
则计算所有匹配项。
答案 9 :(得分:1)
在您的控制器中
$city=City::with('locations')->findOrFail($id);
// if $id does not exit how to handle error
// how to show message form asses/lang/en/somefile.php to user.
// like "please try again"
return view('admin.city.viewCity',compact('city'));
在您的视图中 - 显示已存在的消息
$this->validate($request, [
'email' => 'required|unique:user|email',
]);
答案 10 :(得分:0)
这将检查用户表中是否存在请求的电子邮件:
if (User::where('email', $request->email)->exists()) {
//email exists in user table
}
答案 11 :(得分:0)
如果您想在数据库中插入一条记录,如果不存在具有相同电子邮件的记录,那么您可以执行以下操作:
$user = User::updateOrCreate(
['email' => Input::get('email')],
['first_name' => 'Test', 'last_name' => 'Test']
);
updateOrCreate
方法的第一个参数列出了唯一标识关联表中记录的列,而第二个参数包含要插入或更新的值。
您可以在此处查看文档:{{3}}
答案 12 :(得分:0)
很容易知道是否有任何记录
$user = User::where('email', '=', Input::get('email'))->get();
if(count($user) > 0)
{
echo "There is data";
}
else
echo "No data";
答案 13 :(得分:0)
使用 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);
}
答案 14 :(得分:0)
检查记录是否存在的有效方法,必须使用is_null方法来检查查询。
以下代码可能会有所帮助:
$user = User::where('email', '=', Input::get('email'));
if(is_null($user)){
//user does not exist...
}else{
//user exists...
}
答案 15 :(得分:0)
Laravel 6或顶部:编写表名称,然后给出实例 where('id',$ request-> id)的where子句条件 >
public function store(Request $request)
{
$target = DB:: table('categories')
->where('title', $request->name)
->get()->first();
if ($target === null) { // do what ever you need to do
$cat = new Category();
$cat->title = $request->input('name');
$cat->parent_id = $request->input('parent_id');
$cat->user_id=auth()->user()->id;
$cat->save();
return redirect(route('cats.app'))->with('success', 'App created successfully.');
}else{ // match found
return redirect(route('cats.app'))->with('error', 'App already exists.');
}
}
答案 16 :(得分:0)
最简单的方法
public function update(Request $request, $id)
{
$coupon = Coupon::where('name','=',$request->name)->first();
if($coupon->id != $id){
$validatedData = $request->validate([
'discount' => 'required',
'name' => 'required|unique:coupons|max:255',
]);
}
$requestData = $request->all();
$coupon = Coupon::findOrFail($id);
$coupon->update($requestData);
return redirect('admin/coupons')->with('flash_message', 'Coupon updated!');
}
答案 17 :(得分:0)
$email = User::find($request->email);
If($email->count()>0)
<h1>Email exist, please make new email address</h1>
endif
答案 18 :(得分:0)
答案 19 :(得分:0)
这将检查表中是否存在特定的电子邮件地址:
if (isset(User::where('email', Input::get('email'))->value('email')))
{
// Input::get('email') exist in the table
}
答案 20 :(得分: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);
首页,它有帮助!
答案 21 :(得分:0)
我认为以下方法是实现相同目标的最简单方法:
$user = User::where('email', '=', $request->input('email'))->first();
if ($user) {
// user doesn't exist!
}
答案 22 :(得分:0)
$user = User::where('email', request('email')->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');
答案 23 :(得分:0)
$JsBeforeDayMultipleHalfHour = <<<EOF
function(date){
var dates = new Array();
dates = {$thirty_minutes_dates};
var year = date.getFullYear(), month = date.getMonth(), day = date.getDate();
for (var i=0; i < dates.length; ++i) {
if (year == parseInt(dates[i][0]) && month == parseInt(dates[i][1]) - 1 && day == parseInt(dates[i][2])) {
return {classes: 'bold-text'};
}
return [false, ''];
}
}
EOF;
可以写为
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
// user doesn't exist
}
如果原始语句中使用的是$ user,那么这将返回true或false而不分配临时变量。
答案 24 :(得分:0)
你可以使用laravel验证。
但是这段代码也很好:
$user = User::where('email', $request->input('email'))->count();
if($user > 0)
{
echo "There is data";
}
else
echo "No data";
答案 25 :(得分:0)
在null
语句中检查if
可以防止Laravel在查询结束后立即返回404。
if ( User::find( $userId ) === null ) {
return "user does not exist";
}
else {
$user = User::find( $userId );
return $user;
}
如果找到了用户,它似乎会运行两次查询,但是我似乎找不到其他可靠的解决方案。
答案 26 :(得分:-1)
非常简单
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);
谢谢
答案 27 :(得分:-1)
最短的工作选项:
A
答案 28 :(得分:-9)
这是检查电子邮件是否存在于数据库中的简单代码
$data = $request->all(); $user = DB::table('User')->pluck('email')->toArray(); if(in_array($user,$data['email'])) { echo 'existed email'; }