草庐IT

eloquent

全部标签

php - 在使用 "take"和 "skip"之前获取 Laravel Eloquent 行数

我想使用Eloquent查询我的Laravel模型以获得可能需要匹配某些where子句的结果,然后take并skip预定义数字。这本身不是问题,但我还需要知道在使用take和skip减少结果集之前在查询中找到的行数-因此原始匹配数可能是每一行如果没有使用where子句,则为表;如果使用其中一个,则为几个。我想做的可以通过两次查询来完成,第一次在末尾省略“->take($iDisplayLength)->skip($iDisplayStart)”并计算它,但这看起来很乱。有什么想法吗?$contacts=Contact::where(function($query)use($reques

php - Eloquent 获取最近 3 小时内的记录

我需要获取过去3小时到当前(现在)之间插入的所有记录。我正在使用laravel框架(Eloquentorm)。我试过这个发现here$lb=\DB::table('myTable')->whereRaw('created_at=DATE_ADD(NOW(),INTERVAL-3HOUR');但它返回NULL。有什么方法可以使用Eloquent而不是原始查询吗?如有任何帮助,我们将不胜感激。 最佳答案 Laravel附带Carbon,这是一个处理日期的好库,可以与Eqlouent结合使用。示例:\DB::table('myTable'

php - Laravel 5 找不到 Eloquent 模型

我是Laravel的新手,在加载我的模型以便为数据库播种时遇到问题。我已经尝试了composer.json的Laravel4方法和Laravel5PSR-4。数据库播种器.phpuseIlluminate\Database\Seeder;useIlluminate\Database\Eloquent\Model;classDatabaseSeederextendsSeeder{/***Runthedatabaseseeds.**@returnvoid*/publicfunctionrun(){\App\Models\Client::truncate();\App\Models\Modu

php - Laravel 5.1 Eloquent 转义字符串参数(havraw)

我收到一个字符串参数,我想将havingRaw用于:我收到的字符串:$searchString=Input::get('q');//example:partybeach我在不同的问题中发现我应该使用它来防止sql注入(inject):$searchStringEsc=DB::connection()->getPdo()->quote($searchString);我遇到的问题是,当我使用havingRaw插入我的查询时,由于我的字符串现在已转义`partybeach`,它返回null,但是当我插入未转义的字符串时,它工作正常。->havingRaw('searchrlikereplac

php - Laravel Eloquent - 关系中的 firstOrCreate()

当我在另一个模型的关系上尝试firstOrCreate()时,它不起作用:Client::find($id)->users()->firstOrCreate(array('email'=>$email));这会返回一个错误信息CalltoundefinedmethodIlluminate\Database\Query\Builder::firstOrCreate()直接在模型User上运行它会起作用。 最佳答案 Thiswon'twork,youhavetodoitmanually/directlyusingUsermodelbec

php - Laravel/Eloquent 模型属性可见性

我以前使用的ORM将数据库列直接映射到类属性,这允许您查看特定属性的可见性,就像您通常会限制对某些属性的访问一样,例如密码。使用Eloquent我似乎无法复制它,因为数据库列映射到不包含可见性的内部属性数组。我的愿望是将对用户密码的访问范围仅限于对象,即私有(private)。设置具有可见性的类属性不起作用,因为此属性超出了Eloquent模型属性的范围,因此该属性未映射到列。Eloquent$hidden和$guarded属性不起作用,因为它们处理批量输出(toArray、toJSON)和批量赋值,而不是直接赋值。我尝试使用访问器/修改器(getters/setters)来实现混合结

php - Laravel Eloquent 操作集合

我正在运行一个查询,它返回一个包含7个项目的集合数组-$uniques=Analytics::fetchviews(Period::days(7))->take(7);收集结果是这样的-2=>array:4[▼"date"=>Carbon{#247▶}"uniquePageviews"=>1"pageViews"=>1]我想取出pageViews和uniquePageviews并在将结果传递给View之前使用这些整数。如何直接编辑集合中的数据? 最佳答案 集合只是模型的列表。您可以遍历它们,使用它们的属性等等。例如:foreach(

php - Laravel Eloquent ORM 关系命名约定

在Eloquent中定义逆关系时,是否必须将动态属性命名为与相关模型相同的名称?classBookextendsEloquent{publicfunctionauthor(){return$this->belongsTo('Author');}}$books=Book::all()foreach($booksas$book){echo$book->author->firstname;}在上面的例子中,我必须调用这个方法author还是我可以给它起别的名字?我试图将它命名为其他名称(出于好奇),但它随后返回null,因此出现错误“尝试获取非对象的属性”。编辑:我通过将外键传递给belon

php - 在什么情况下laravel的eloquent collection save()会出错呢?

我想知道elqouent的save()可能抛出的错误或异常。在laravel中,我在保存或更新模型时一直在做类似的事情。//createorupdatesomedataif($model->save()){//continuereturntrue;}thrownewException('Modelcouldnotbesaved');我不喜欢用if语句包围save()来检查模型是否已保存。如果它抛出异常,我很乐意将它包装在try..catchblock中,例如,try{//createorupdatesomedata$model->save()//continuereturntrue;c

php - Laravel Eloquent - 保存/更新相关的一对多关系数据

我有一个实体集,里面有很多项目。因此,在更新集合时,表单也包含用于更新其项目的字段。我已经做到了并且运行良好,但我不确定这是否是正确且最有效/优雅的方法。这是我的代码:$set->fill(Input::all());foreach(Input::get('course')as$course_id=>$content){$item=$set->items->filter(function($item)use($course_id){return($item->course_id==$course_id);})->first();$item->content=$content;$set-