草庐IT

eloquent

全部标签

php - 在 Laravel 5.2 中为所有 Eloquent 模型添加全局方法

我想将给定的方法添加到我所有的Eloquent模型中:publicfunctionisNew(){return$this->created_at->addWeek()->gt(Carbon::now());}这可以不用暴力破解吗?我在文档中找不到任何内容谢谢 最佳答案 你可以做什么:创建BaseModel类并将所有类似的方法放入其中。然后在所有模型中扩展这个BaseModel类而不是Model类:类Profile扩展了BaseModel使用GlobalScope.创建trait并在您的所有或部分模型中使用它。

php - 检查列是否存在于 Laravel 模型的表中,然后应用条件

现状:我们正在为新注册创建新数据库。问题:如果在数据库迁移中进行了任何更改,我们需要为之前创建的数据库处理它。或者为每个以前创建的数据库运行该迁移。如果我们为每个数据库运行迁移没问题。问题:如何检查数据库表中是否有我们在查询中应用条件的列。目前我需要先为第一行触发两个查询并检查该列是否存在,然后在where子句中应用条件。如下图$firstRow=Model::first();if(isset($firstRow->is_splited)){$records=Model::where('is_splited',0)->get();//thiswillgiveerrorifIdon'tc

php - Eloquent sortBy - 指定 asc 或 desc

尝试整理我Eloquent收藏:$collection->sortBy('field');在Laravel4的文档中没有关于如何为这种排序方法选择降序或升序的信息。这可能吗? 最佳答案 按ASC排序:LaravelDocs-sortBy()$collection->sortBy('field');按DESC排序:LaravelDocs-sortByDesc()$collection->sortByDesc('field'); 关于php-EloquentsortBy-指定asc或desc

php - Eloquent 事件没有触发

我想在我的用户模型中更改密码时设置密码。所以我正在使用模型的引导方法:isDirty('password')){$user->password=//hashpassword...}});}}我在模型上使用save()方法在数据库中创建条目,显然这应该触发创建事件。我已经清空了数据库表以确保正在创建一个新行(它是),此事件不会触发-我的密码是未加密的原始密码。顺便说一句,我在我的应用程序(不是Laravel)中使用illuminate/database^5.2。更新-胶囊初始化$capsule=newIlluminate\Database\Capsule\Manager;$capsule

php - 使用 Laravel 4 自动生成模型类(也就是使用现有的 L4 数据库)

我在MySQLWorkbench中设计了我的数据库,并设置了所有外键等。我想在Laravel4中使用这个数据库模式,但是从文档中没有任何关于使用现有数据库表集的能力的说法。据我了解,其他框架(例如Cake及其“烘焙”)允许您根据数据库中已有的表自动生成模型类。我环顾四周,对于Laravel4根本看不到任何相关信息。我找到的最接近的东西是JeffreyWay的ArtisanGenerator包,但是它只创建了基础模型,并没有检测到已建立的外键关系。这在Laravel4中是否可行,还是我必须全部手动完成? 最佳答案 好消息是安东尼奥刚刚

php - 当从数据库中检索 Eloquent 模型时执行代码

我有一个Eloquent模型。每当从数据库中检索到它时,我想检查是否满足条件并在满足条件时设置模型属性。编辑:我最初认为restoring事件是放置相关逻辑的正确位置,但正如TylerCrompton在下面指出的那样,restoring在恢复软删除的记录。 最佳答案 你有两个有效的选择:你可以继承\Illuminate\Datebase\Eloquent\Model添加这样的事件。您可以修改您的\Illuminate\Datebase\Eloquent\Model副本添加这个(并可能发送(未经请求的)拉取请求到LaravelonGi

php - Laravel Eloquent 保存项目错误?

当我尝试将一个项目保存到我的数据库时,我得到了MethodClients::__toString()mustreturnastringvalue当前代码$name=Input::get('email');$client=Input::get('client');$website=Input::get('website');$userassign=Input::get('userassign');$client=newClients();$client->name=$name;$client->client=$client;$client->website=$website;$clien

php - 错误 Illuminate Database Eloquent Not Found

在Controller中,当我试图通过异常调用模型中的函数时Symfony\Component\Debug\Exception\FatalErrorException(E_ERROR)Class'Illuminate\Database\Eloquent'notfoundController很简单,我曾经创建namespace来管理子目录Controller和模型layout)){$this->layout=View::make($this->layout)->with(Dashboard::all());}}}和模型 最佳答案 类是

php - 指导我使用 phpleague 库实现 Oauth2 PHP 服务器

我正在使用SlimFramework和EloquentORM.试图实现https://github.com/thephpleague/oauth2-server但我完全不知道该怎么做。用Composer添加后,我用这个包中提供的sql文件创建了数据库。现在建议implementStorageinterfaces.我不想这样做,所以我只是复制了示例文件夹中的存储类。我想它们应该可以正常工作,因为我使用的是相同的数据库吗?还不清楚最初如何播种数据库。这是我正在尝试的路由器password方法。$server=new\League\OAuth2\Server\AuthorizationSer

php - Laravel 在 Eloquent ORM 中使用 WHERE

我遇到了这个$user=User::whereConfirmationCode($confirmation_code)->first();在LaravelseloquentORM中,您可以像上面那样在where语句中附加表行名称吗?在我看到这个之前我会写例如:$user=User::where('confirmation_code','=',$confirmation_code)->first();谢谢 最佳答案 '是的,你可以在哪里建立动态。它在简单的where语句中解析。您也可以像这样构建魔术查询:$user=User::whe