我有一个 Laravel 5.0 项目,我需要实现以下逻辑
$var1= 'A';
$var2= 'B';
$var3= 50;
$data = DataModel::select('attr1','attr2')->where(function($q){
$q->where('attr3','like','%'.$var1.'%');
$q->where('attr4','like',$var2.'%');
$q->where('attr5','=',$var3);
})->get();
Run Code Online (Sandbox Code Playgroud)
问题在于“Where”函数 $var1、var2 和 $var3 是未定义的变量。
我的问题是,如何将多个参数传递给 where 函数?
我在数据库中有 3 个表(用户、区域、区域用户),
用户表:id 名称 用户名 密码
区域表:id 名称
area_user 表:id user_id area_id
我正在尝试创建一个(列表用户页面),它将显示用户分配区域的所有用户表列。
User.php 模型文件
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name', 'email', 'password','role_id',];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = ['password', 'remember_token',];
public function areas(){
return $this->belongsToMany('App\Area','area_user');
}
Run Code Online (Sandbox Code Playgroud)
Area.php 模型文件:
<?php
namespace …Run Code Online (Sandbox Code Playgroud) 我已将出生日期保存在 MySQL 数据库中。
table name : **users**
field name : **dob**
Run Code Online (Sandbox Code Playgroud)
现在我想在视图中显示年龄。我的查询是:
$user_info = DB::table('users')->select('(year(curdate())-year(dob)) as age')->get();
Run Code Online (Sandbox Code Playgroud)
我正在使用 Laravel 5.5。
但这正在造成错误。如何使用 Laravel 中的查询生成器计算年龄?
Laravel 查询选择具有多个值匹配的单列
$user = User::where('name', [
'User1',
'User2',
'User3',
])->get();
Run Code Online (Sandbox Code Playgroud) 您将如何以 Laravel 风格编写以下查询?
SELECT * FROM `job_details` WHERE `job_title` LIKE '%officer%' AND `category_id` = 1 AND `city_id` = 1
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但它不起作用:
DB::(job_details)->where(job_title LIKE '%officer%')->and(category_id=1)->and(city_id=1)
Run Code Online (Sandbox Code Playgroud)