我希望能够在加载时为Laravel/Eloquent模型添加自定义属性/属性,类似于使用RedBean $model->open()方法可以实现的方式.
例如,目前,在我的控制器中,我有:
public function index()
{
$sessions = EventSession::all();
foreach ($sessions as $i => $session) {
$sessions[$i]->available = $session->getAvailability();
}
return $sessions;
}
Run Code Online (Sandbox Code Playgroud)
能够省略循环并且已经设置和填充'available'属性会很好.
我已经尝试使用文档中描述的一些模型事件来在对象加载时附加此属性,但到目前为止没有成功.
笔记:
$sessions作为API的一部分作为JSON对象返回,因此调用类似于$session->available()模板的东西不是一种选择有没有办法在其saving或updating事件中查看模型属性的旧/先前值?
例如.有类似以下可能:
User::updating(function($user)
{
if ($user->username != $user->old->username) doSomething();
});
Run Code Online (Sandbox Code Playgroud) 是否有关于如何在多开发人员/多分支(VCS)环境中成功处理数据库视图迁移的既定实践?
我们一直在使用数据库迁移库来进行所有模式更改,但是当不同代码分支中的不同开发人员改变同一视图时,它们遇到了问题,但它们的起源点是相同的.
每个开发人员都有自己的数据库副本,但由于视图通常需要在迁移中指定整个定义,这意味着当我们对登台或生产数据库运行迁移时,无论哪个视图迁移最后都会覆盖任何在任何先前的视图迁移中所做的更改.
例:
SELECT 'x'.SELECT 'x', 'y'.SELECT 'x', 'z'.SELECT 'x', 'z'.SELECT 'x', 'y'开发人员2的更改已丢失.这可能听起来像一个奇怪的问题,但我很想知道它是否可能......
有没有办法使用内联数据模拟MySQL记录?例如,如果有可能,我希望它能像以下那样工作:
SELECT inlinedata.*
FROM (
('Emily' AS name, 26 AS age),
('Paul' AS name, 56 AS age)
) AS inlinedata
ORDER BY age
Run Code Online (Sandbox Code Playgroud) 我的项目中有 40 多个表,并且我已经应用了具有所有约束的级联删除。现在我的数据库有实时数据,所以我只想跟踪由于级联删除而发生的删除。
所以基本上我只想知道,如果我从用户表中删除任何一个用户(用户与 10 个以上的表有关系),那么所有的表都是表,哪些数据已被删除。
这样我就可以将它们记录在另一个文件中以供备份之用。
mysql 有什么办法吗?
我正在寻找一种方法将Laravel/Eloquent数据库查询的结果映射到自定义类,而不是默认的Eloquent类.
Laravel/Eloquent是否包含任何内置设施?如果没有,是否有合适的地方"挂钩"到结果生成代码并进行必要的映射?
举个例子,这大致是我想要实现的目标:
class User extends Eloquent {}
class MyUser
{
protected $name;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
return $this;
}
}
$users = User::all();
// $users should now contain an array of MyUser instances
Run Code Online (Sandbox Code Playgroud)
动机/问题的原因
这个问题背后的动机是找到一种方法,查询可以生成完全独立于框架的对象或对象数组.这是因为有问题的Laravel应用程序需要能够将其结果传递给其他非Laravel系统,因此Plain Old PHP对象(例如MyUser)最有意义.
我目前有两个应用程序在不同的虚拟主机下运行在同一台服务器上.第一个是Laravel 4应用程序,第二个是较旧的PHP项目,它不使用框架,但遵循粗略的MVC模式.
我想找到一种方法来与旧的PHP项目中的Laravel应用程序进行交互并使用一些模型.
显然它不会像包含模型文件那么简单,因为它们会有各种依赖关系,所以在尝试这样做时,我应该考虑一些通用的方法或模式吗?