我试着得到这样的东西
select * from `users`
inner join `settings`
on `users`.`id` = `settings`.`user_id`
and NOW() NOT BETWEEN quit_hour_start AND quit_hour_end
where `notification_key` != ''
and `device_type` = 'Android'
Run Code Online (Sandbox Code Playgroud)
雄辩的.有人试图在eloquent中成功构建此查询.我知道我可以使用\DB::select(DB::raw());并得到我的结果.但我想使用与Laravel雄辩的方法.
======更新已尝试查询的评论========
$androidUser = User::join('settings', function ($join) {
$join->on('users.id', '=', 'settings.user_id')
->where(DB::raw("'$currentTime' NOT BETWEEN quit_hour_start AND quit_hour_end"));
})
->where('notification_key', '!=', '')
->where('device_type' ,'=', 'Android')
->get();
Run Code Online (Sandbox Code Playgroud) 我查询了 Category 模型以获取用于查询 Post 模型的所有 id 'name', '=', $name,但出现错误。
public function getList($name)
{
$category_id = Category::where('name', '=', $name)->first()->id;
$posts = Post::whereHas('category', function ($q) use ($category_id) {
$q->where('id', '=', $category_id);
})->paginate(12);
return view('blog.index')->withPosts($posts)->withName($name);
}
Run Code Online (Sandbox Code Playgroud)
这是我的错误。
Builder.php 第 877 行中的 ErrorException:compact():未定义的变量:运算符
SELECT *
FROM (
SELECT *
FROM appointments
WHERE `date` <= Curdate()
) `t`
WHERE `t`.`end_time` <= current_time
Run Code Online (Sandbox Code Playgroud)
如何为此 SQL 查询编写 Laravel eloquent等效查询?
我有一些客户通过订单有很多包裹。
public function parcels()
{
return $this->hasManyThrough(Parcel::class, Order::class);
}
Run Code Online (Sandbox Code Playgroud)
我只想退回包裹数量超过 0 且状态成功的客户。但我不知道如何添加包裹状态条件。目前,此声明为我提供了拥有包裹的客户列表。
$customers = Customer::has('parcels', '>' , 0)->get();
需要获取当月的记录,但查询返回错误的结果。数据库中只有一条记录。但我得到当月的错误计数
$data = UserData::select(
DB::raw("count(phone) as total")
)
->whereMonth('creation_date', Carbon::now()->month)
->get();
return view('kpidata', compact('data'));
Run Code Online (Sandbox Code Playgroud)
这是 mysql 查询的结果, 在此处输入图像描述
这是我使用 laravel 查询得到的结果,在此处输入图像描述
我有以下迁移:
Schema::create('auctions', function (Blueprint $table) {
$table->id();
$table->timestamp('expired_at');
$table->timestamp('sold_at')->nullable()->default(null);
// other fields
});
Run Code Online (Sandbox Code Playgroud)
每次我尝试sold_at仅更新字段时,它expire_at也会更改字段,这非常烦人并且违反我的项目逻辑!我应该如何修复我的迁移以防止这种情况发生?
我的更新记录代码:
Auction::query()->where('id',1)->update([
'sold_at' => now()
]);
Run Code Online (Sandbox Code Playgroud) 我有一个由表的位置$user->roles和列生成的集合。rolerole_namepermission
我想要的是获得一组权限并使用它,这样我就可以在需要数组的组件jquery中使用它。select2
<script>
$( document ).ready(function() {
$("#role_select").select2();
$('#role_select').val( {{ $user->roles->pluck('permission') }} ).trigger('change');
});
</script>
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用并在控制台中显示
["Super","Moderate"]
Run Code Online (Sandbox Code Playgroud)
那么我如何通过删除来获得一系列权限"?
当我将此变量传递给 Laravel Eloquent 的when()方法时,我在闭包内的参数有一个奇怪的值。在闭包内,因为$user_id我得到true而不是2. 原因可能是什么?
$user_id = 2;
$orders = Order::with('user')
->when(!empty($user_id), function ($query, $user_id) {
dd($user_id); // <-------- HERE I get TRUE instead of "2" as value.
$query->where('user_id', $user_id);
})
->when(($filter == 'paymentreceived'), function ($query) {
$query->paymentConfirmationReceived();
})
->orderBy('id', 'desc')
->paginate(50);
Run Code Online (Sandbox Code Playgroud) 我正在为管理员视图创建 MM 关系的视图列表。我想显示已注册该特定事件的每个用户。我很确定我把它称为错误的,这就是我收到此错误的原因。我不太确定如何解决它。我尝试谷歌搜索,但仍然没有找到任何解决方案。那么我该如何解决这个问题呢?
饲料模型
class Feed extends Model
{
protected $fillable = [
'userId',
'title',
];
public function likes()
{
$this->hasMany(FeedLike::class, 'feedId', 'id');
}
}
class FeedLike extends Model
{
protected $fillable = [
'feedId',
'userId',
];
}
**Controller**
Feed::withCount('likes')->get();
Run Code Online (Sandbox Code Playgroud)
返回错误消息“Call to a member function getQuery() on null”。
我已经检查了 Laravel 文档的语法并检查了堆栈溢出相关问题。
我有一个阵列
array:3 [?
1 => "2"
2 => "2"
3 => "0"
]
Run Code Online (Sandbox Code Playgroud)
我想计算值大于0的键的数量.在上面的例子中我应该得到答案2.
这是我的尝试.
return count($input_items > 0);
Run Code Online (Sandbox Code Playgroud)
这返回1