草庐IT

eloquent

全部标签

php - 在 Laravel 中创建多态字段名的规则是什么?

我不是Laravel的新手,但这是我第一次需要/想要使用多态关系。我在Laravel.com看到了一个例子,它说我应该使用'imageable_id'到一个名为'images'的表,在另一个例子中我看到了'commentable_id'到表格'评论'。创建名字有规则吗?例如:我想创建一个表'category',它将用于'posts'和'settings'。在这种情况下,我应该使用'categoryable_id'作为名称吗? 最佳答案 没有规则,除了默认约定。默认情况下,您定义前缀,Laravel将设置_id和_type后缀。该字段

php - PHP 中的代码优先 Entity Framework 模型

我最近在一个ASP.NetMVC项目中工作,我们在该项目中使用代码优先技术来创建所有数据库表。我真的很喜欢这个想法,您不需要接触数据库并创建由EF层自动映射到数据库的模型类。我打算用PHP开始一个业余项目,并且正在玩Laravel(我是PHP新手)。我想知道PHP中是否有与EF4.1一样支持代码优先模式的等效框架?我正在查看一些Laravel教程,看起来ORM(Eloquent)的工作方式与.net中的EF4.1的工作方式并不完全相同。在我看来,您仍然需要在数据库中创建表,然后创建一个模型来映射数据库。我错过了什么吗?谢谢。 最佳答案

php - 在 Laravel 5 中使用自定义时间戳返回错误

所以在我的迁移中,我添加了一列:$table->timestamp('due_at');然后我允许用户为任务设置截止日期,但是当我尝试执行时:$task->due_at->diffForHumans()我收到这个错误CalltoamemberfunctiondiffForHumans()onstring我的自定义时间戳与created_at和update_at的格式完全相同,但它返回错误。我该怎么做才能解决这个问题?提前谢谢你。 最佳答案 你还需要在模型中声明它,否则Laravel不会知道它是一个Carbon实例。例如:protec

php - 运行 php artisan db :seed more than one and continue for duplicate keys insert

我创建了一个用于在数据库中插入默认值的播种器。如果我多次运行这个播种器,mysql返回重复键错误,所以我的问题是处理此错误的最佳方法是什么?以及如何继续运行其他种子? 最佳答案 您不应该多次运行db:seed命令。更好的方法是重新创建所有表并使用此命令播种数据:phpartisanmigrate:refresh--seed或者在运行phpartisanmigrate:refresh命令后运行一次db:seed。https://laravel.com/docs/5.5/migrations#rolling-back-migration

Php 变量没有传递到 whereHas 函数 - Laravel Eloquent

总结:我无法访问whereHas函数中的$domain变量(如下);Laravel返回以下错误:"Undefinedvariable:domain"我将我的关系包括在内,因为我不确定Eloquent性质以及我尝试调用此查询的方式是否会导致问题。我有一个调用模型(Org)的中间件Org模型有字段subdomain组织模型有publicfunctiondomains(){return$this->hasMany('App\Domain');}域模型(表名域)有字段domain,org_id还有功能publicfunctionorg(){return$this->belongsTo('App

php - 将 SQL 查询 IS NULL 更改为 Laravel Query Builder/Eloquent

如何改变SQL查询SELECT*FROMapsWHEREkategoriISNULL到LaravelEloquent/QueryBuilder? 最佳答案 $apps=DB::table('aps')->whereNull('kategori'); 关于php-将SQL查询ISNULL更改为LaravelQueryBuilder/Eloquent,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

php - Laravel 模型事件保存未触发

我正在尝试模拟Ardent包在做什么。这是在保存之前验证模型。我创建了这个BaseModel(根据LaravelTestingdecoded一书)。并添加了这段代码:classBaseModelextendsEloquent{protectedstatic$rules=[];public$errors=[];publicfunctionvalidate(){$v=Validator::make($this->attributes,static::$rules);if($v->passes()){returntrue;}$this->errors=$v->messages();retur

php - Laravel 使用 Eloquent 多对多关系

我正在尝试使用Laravel创建多对多关系,但我被卡住了。这是我当前的表格模型:专辑album_idnamecreated_at用户图片user_image_idvaluealbumxuser_image(联结表)albumxuser_image_id(primarykey&autoincrement)album_id(FKfromalbum)user_image_id(FKfromuser_image)我希望能够从albumxuser_image表中获取相册名称。这是我到目前为止所做的。Album.php模型namespaceApp\Models;useIlluminate\Data

php - 有条件地构建 Eloquent 查询

背景我正在使用Laravel的Eloquent作为我的ORM。我正在创建一个API端点,它提供对具有多个属性(color、make、status)的Cars的访问.我的端点允许客户端通过这些属性的任何子集过滤返回值,如果他们不提供任何属性,那么我将返回所有内容。问题我想构建一个条件查询,它从“全部”开始,然后根据指定的参数缩小范围。这是我写的:publicfunctiongetCars(Request$request){$results=Cars::all();if($request->has('color'))$results=$results->where('color',$req

php - Eloquent - 急切加载关系

我正在尝试弄清楚如何从相关表中预先加载数据。我有2个模型Group和GroupTextPost。Group.phphasOne('\App\Models\GroupType');}publicfunctionuser(){return$this->belongsTo('\App\Models\User');}publicfunctionmessages(){return$this->hasMany('\App\Models\GroupTextPost');}}GroupTextPost.phpbelongsTo('\App\Models\User');}publicfunctiongr