标签: eloquent

在Laravel中使用Eloquent ORM使用LIKE执行数据库搜索

我想使用Eloquent的活动记录构建来构建搜索查询,但它将是一个LIKE搜索.我找到了User::find($term)或者User::find(1),但这并没有产生类似的声明.我不是在寻找一个直接的答案,但是如果有人能够至少给我一个指导,那就太好了!

orm laravel eloquent sql-like

90
推荐指数
4
解决办法
13万
查看次数

如何使Laravel雄辩"IN"查询?

我想在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)

php orm laravel eloquent

89
推荐指数
4
解决办法
12万
查看次数

根据多个ID检索Laravel Model结果

我已经实现ZendSearch了我的Laravel应用程序.我使用它作为我的搜索引擎,用户将在其中键入搜索词,然后ZendSearch将返回一系列按相关性排序的结果.但是,ZendSearch返回的数组只返回我的记录ID(它不返回任何实际的记录信息).

下一步是什么是查询我的模型以基于ZendSearch数组结果检索结果的正确方法,该数组结果只是基于相关性排序的ID数组.

我知道Model::find(1)哪个会以ID为1返回我的记录,但是如何将该find()方法提供给我想要按照我给它的顺序返回的ID数组.

php relevance zend-search-lucene laravel eloquent

88
推荐指数
1
解决办法
6万
查看次数

阻止Laravel将多个记录添加到数据透视表

我有多对多的关系设置和工作,将项目添加到我使用的购物车:

$cart->items()->attach($item);
Run Code Online (Sandbox Code Playgroud)

这会将项目添加到数据透视表中(应该如此),但如果用户再次单击链接以添加他们已添加的项目,则会在数据透视表中创建重复项.

是否有内置的方法将记录添加到数据透视表只有一个尚不存在?

如果没有,我如何检查数据透视表以查找是否已存在匹配的记录?

php laravel eloquent laravel-4

87
推荐指数
2
解决办法
4万
查看次数

雄辩 - 不等于

我正在使用最新的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)

laravel eloquent

87
推荐指数
4
解决办法
20万
查看次数

Laravel.在具有关系的模型中使用scope()

我有两个相关的模型:CategoryPost.

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 eloquent laravel-4

86
推荐指数
1
解决办法
6万
查看次数

Laravel Pagination链接不包括其他GET参数

我和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会让我们的刀片模板搞乱一大堆代码?

pagination laravel eloquent blade laravel-4

84
推荐指数
9
解决办法
7万
查看次数

Laravel Eloquent groupBy()AND也返回每组的计数

我有一个表,其中包含一列浏览器版本.我只是想从记录集中了解每种类型的浏览器有多少.所以,我需要最终得到这样的结果:总记录: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个浏览器,而不是每个浏览器的数量.我怎样才能做到这一点?

laravel eloquent laravel-4

82
推荐指数
7
解决办法
23万
查看次数

如何使用Laravel Query Builder从子查询中进行选择?

我想使用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)

我正在寻找更好的解决方案.

请告诉我最简单的解决方案.

sql query-builder laravel eloquent laravel-4

82
推荐指数
6
解决办法
11万
查看次数

Laravel Eloquent - distinct()和count()不能正常工作

所以我试图获取查询中不同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不能在同一个查询中?我发现解决方法有点"沉重",我想让原始查询工作:(

count distinct laravel eloquent

82
推荐指数
5
解决办法
21万
查看次数