草庐IT

eloquent

全部标签

php - 如何在 laravel 中使用 hasMany 关系制作更新页面

我正在尝试创建一个表单来更新具有一对多关系的模型。结构是这样的item=>{[arg1,arg2],[arg1,arg2],[arg1,arg2]}每个相关模型都有两个要更新的字段。我使用了下面的代码,但我不知道如何对Controller端进行编码。@extends('app')@section('content'){!!Form::open(array('route'=>array('Topic.update',$topic->id),'method'=>'PATCH'))!!}{!!Form::label('title','Title')!!}{!!Form::text('titl

php - Laravel - 渴望加载多对多,只获取一条记录(不是集合)

我的帖子有图片(多对多,因为图片也可以有其他关系)。在我的数据透视表中,我有一个名为“特色”的bool字段,它指定该帖子的主图像。我想在帖子索引页面中显示与当前用户关联的所有帖子。我只想从数据库中获取一张图片,那应该是特色图片。目前我只能将精选图片作为一个集合。这样做的原因是,如果用户有很多帖子,我不想继续检索他们所有帖子(N+1)的特色图片,而是使用预加载仅通过2个查询获取特色图片。\\PostModelpublicfunctionimages(){return$this->belongsToMany(Image::class);}publicfunctionimage(){retu

php - Eloquent 分组 orWhere

目前有一个Eloquent语句:$contacts=Contacts::where('lname','LIKE',$searchquery.'%')->orWhere('fname','LIKE',$searchquery.'%')->orWhere('phone','LIKE','%'.$searchquery)->where('active','=',1)->get();它把它当作select*fromcontactswherelnamelike$searchquery+'%'orlnamelike$searchquery+'%'orlnamelike$searchquery+'%

php - Laravel:如何在预加载中获取关联表的列

我有三个数据库表。CREATETABLE`tblproject`(`ProjectID`int(11)NOTNULL,`ProjectStatusID`varchar(30)NOTNULL,)ENGINE=InnoDBDEFAULTCHARSET=latin1;CREATETABLE`tblSkills`(`SkillID`int(11)NOTNULL,`Skill`varchar(100)NOTNULL)ENGINE=InnoDBDEFAULTCHARSET=latin1;CREATETABLE`tblprojectSkills`(`ProjectSkillID`int(11)NOT

php - 将 Eloquent 模型绑定(bind)到服务容器

有人用IoC容器绑定(bind)Eloquent模型吗?例如,我有一个用于我的帐户和类别Eloquent模型的存储库。Account模型与Categories有hasMany关系。类别存储库将帐户存储库注入(inject)到构造函数中。相反,我想像这样注入(inject)一个实际的帐户模型......在我的服务提供商中:$this->app->bind(App\Models\Account::class,function($app){return(Auth::check())?Auth::user()->account:null;});在我的仓库中useApp\Models\Accou

php - Laravel 关系计数()

我想获得具有关系的总用户交易(特定用户)。我已经做到了,但我很好奇我的方法是不是好方法。//UserModelpublicfunctionTransaction(){return$this->hasMany(Transaction::class);}//MerchantModelpublicfunctionTransaction(){return$this->hasMany(Transaction::class);}publicfunctioncountTransaction(){return$this->hasOne(Transaction::class)->where('user_

php - Laravel:检测是否加载了嵌套关系

在Laravel中我们可以加载具有嵌套关系的模型User::with('posts.comments.likes')但是在其他地方我们如何检测是否加载了嵌套关系?有方法吗?Model::relationLoaded()只检测直接关系。publicfunctionrelationLoaded($key){returnarray_key_exists($key,$this->relations);} 最佳答案 不可能获得嵌套关系的状态-至少除了遍历相关对象并分别检查每个对象的关系之外别无他法。它没有实现的一个很好的理由可能是,如果关系是

php - 使用 Eloquent/Laravel 5.3 使用 save () 更新我的表是更新所有行而不是一个

我正在尝试使用eloquentModel/Laravel5.3更新一行。它不是更新一行,而是更新我要更新的列,但在表中的每一行中。我确定我只是错过了一些东西,但我不能再只看它了。任何帮助将不胜感激...$userUpdate=userTable::placeid($placeId)->userid($userId)->regid($regId)-key($key)->first();结果是我占了一行。然后...$userUpdate->VALUE=$value;$userUpdate->save();这三行更新了表中的VALUE列,但每一行都更新了,而不仅仅是我提取的那一行。

php - 为什么 Laravel Eloquent 生成的 SQL 不带引号?

我尝试在我的Laravel安装上运行sudophpartisanmigratedb:seed并收到以下错误:[Illuminate\Database\QueryException]Arraytostringconversion(SQL:insertinto`sponsor_phones`(`phone_number`,`type`,`is_primary`,`sponsor_id`,`updated_at`,`created_at`)values(247-216-6255x4356,Home,1,101,2017-05-3023:31:59,2017-05-3023:31:59))似乎

php - 使用 Eloquent 在 PHP 中合并数组对象

我使用Laravel的EloquentORM从我的数据库中抓取了一组对象(我没有使用Laravel,只是将Eloquent集成到我自己的框架中)。我用了transform方法遍历集合并反序列化每条记录的列之一,然后是collapsed将所有未序列化的对象放在一个数组中的集合。逻辑如下:$orders=Order::where('user',$user)->orderBy('id','desc')->get();$orders->transform(function($order,$key){$order->cart=unserialize($order->cart);$items=$o