我想使用Eloquent的活动记录构建来构建搜索查询,但它将是一个LIKE搜索.我找到了User::find($term)或者User::find(1),但这并没有产生类似的声明.我不是在寻找一个直接的答案,但是如果有人能够至少给我一个指导,那就太好了!
我想在Laravel Eloquent中查询它的原始MySQL查询
SELECT * from exampleTbl where id in(1,2,3,4)
Run Code Online (Sandbox Code Playgroud)
我在Laravel Eloquent尝试了这个但是它不起作用
DB::where("id IN(23,25)")->get()
Run Code Online (Sandbox Code Playgroud) 我已经实现ZendSearch了我的Laravel应用程序.我使用它作为我的搜索引擎,用户将在其中键入搜索词,然后ZendSearch将返回一系列按相关性排序的结果.但是,ZendSearch返回的数组只返回我的记录ID(它不返回任何实际的记录信息).
下一步是什么是查询我的模型以基于ZendSearch数组结果检索结果的正确方法,该数组结果只是基于相关性排序的ID数组.
我知道Model::find(1)哪个会以ID为1返回我的记录,但是如何将该find()方法提供给我想要按照我给它的顺序返回的ID数组.
我有多对多的关系设置和工作,将项目添加到我使用的购物车:
$cart->items()->attach($item);
Run Code Online (Sandbox Code Playgroud)
这会将项目添加到数据透视表中(应该如此),但如果用户再次单击链接以添加他们已添加的项目,则会在数据透视表中创建重复项.
是否有内置的方法将记录添加到数据透视表只有一个尚不存在?
如果没有,我如何检查数据透视表以查找是否已存在匹配的记录?
我正在使用最新的Laravel安装.
我的表结构如下:https://www.uploady.com/#!/ download/OQSH4ualzUD/x2SIqdcaulqzSSsy
我试过这些查询:
Code::where('to_be_used_by_user_id', '<>' , 2)->get()
Code::whereNotIn('to_be_used_by_user_id', [2])->get()
Code::where('to_be_used_by_user_id', 'NOT IN', 2)->get()
Run Code Online (Sandbox Code Playgroud)
理想情况下,它应返回最后3条记录.但它返回空白数组.我该如何解决这个问题?请帮忙.
Code::all()
Run Code Online (Sandbox Code Playgroud)
返回所有4条记录.
代码模型:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Code extends Model
{
protected $fillable = ['value', 'registration_id', 'generated_for_user_id', 'to_be_used_by_user_id', 'code_type_id', 'is_used'];
public function code_type()
{
return $this->belongsTo('App\CodeType');
}
}
Run Code Online (Sandbox Code Playgroud) 我有两个相关的模型:Category和Post.
该Post模型具有published范围(方法scopePublished()).
当我尝试获取该范围的所有类别时:
$categories = Category::with('posts')->published()->get();
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
调用未定义的方法
published()
类别:
class Category extends \Eloquent
{
public function posts()
{
return $this->HasMany('Post');
}
}
Run Code Online (Sandbox Code Playgroud)
帖子:
class Post extends \Eloquent
{
public function category()
{
return $this->belongsTo('Category');
}
public function scopePublished($query)
{
return $query->where('published', 1);
}
}
Run Code Online (Sandbox Code Playgroud) 我和Laravel 4的Pagination课一起使用Eloquent.
问题:当URL中有一些GET参数时,例如:http://site.com/users?gender=female&body=hot,生成的分页链接只包含page参数而没有其他内容.
刀片模板
{{ $users->link() }}
Run Code Online (Sandbox Code Playgroud)
有一个->append()功能,但是当我们不知道有多少GET参数时,我们怎样才能append()在分页链接中包含其他GET参数而不if会让我们的刀片模板搞乱一大堆代码?
我有一个表,其中包含一列浏览器版本.我只是想从记录集中了解每种类型的浏览器有多少.所以,我需要最终得到这样的结果:总记录:10; Internet Explorer 8:2; Chrome 25:4; Firefox 20:4.(所有加起来都是10)
这是我的两便士:
$user_info = Usermeta::groupBy('browser')->get();
Run Code Online (Sandbox Code Playgroud)
当然,它只包含3个浏览器,而不是每个浏览器的数量.我怎样才能做到这一点?
我想使用Eloquent ORM通过以下SQL获得价值.
- SQL
SELECT COUNT(*) FROM
(SELECT * FROM abc GROUP BY col1) AS a;
Run Code Online (Sandbox Code Playgroud)
然后我考虑了以下内容.
- 代码
$sql = Abc::from('abc AS a')->groupBy('col1')->toSql();
$num = Abc::from(\DB::raw($sql))->count();
print $num;
Run Code Online (Sandbox Code Playgroud)
我正在寻找更好的解决方案.
请告诉我最简单的解决方案.
所以我试图获取查询中不同pid的数量,但返回的值是错误的.
这就是我尝试做的事情:
$ad->getcodes()->groupby('pid')->distinct()->count()
Run Code Online (Sandbox Code Playgroud)
什么返回值"2",而它应返回的值应为"1".
作为一种解决方法,我这样做:
count($ad->getcodes()->groupby('pid')->distinct()->get())
Run Code Online (Sandbox Code Playgroud)
什么工作正常,返回"1"
是否有任何规则,count和distinct不能在同一个查询中?我发现解决方法有点"沉重",我想让原始查询工作:(