小编coa*_*sap的帖子

在加载时将自定义属性添加到Laravel/Eloquent模型?

我希望能够在加载时为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'属性会很好.

我已经尝试使用文档中描述的一些模型事件来在对象加载时附加此属性,但到目前为止没有成功.

笔记:

  • 'available'不是基础表中的字段.
  • $sessions作为API的一部分作为JSON对象返回,因此调用类似于$session->available()模板的东西不是一种选择

php orm laravel eloquent

195
推荐指数
7
解决办法
18万
查看次数

在Eloquent模型事件中获取先前的属性值

有没有办法在其savingupdating事件中查看模型属性的旧/先前值?

例如.有类似以下可能:

User::updating(function($user)
{
    if ($user->username != $user->old->username) doSomething();
});
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-4

48
推荐指数
2
解决办法
3万
查看次数

处理多开发人员环境中的数据库视图迁移

是否有关于如何在多开发人员/多分支(VCS)环境中成功处理数据库视图迁移的既定实践?

我们一直在使用数据库迁移库来进行所有模式更改,但是当不同代码分支中的不同开发人员改变同一视图时,它们遇到了问题,但它们的起源点是相同的.

每个开发人员都有自己的数据库副本,但由于视图通常需要在迁移中指定整个定义,这意味着当我们对登台或生产数据库运行迁移时,无论哪个视图迁移最后都会覆盖任何在任何先前的视图迁移中所做的更改.

例:

  1. 查看目前看起来像:SELECT 'x'.
  2. 开发人员1启动分支A并添加新列.他们的'向上'迁移看起来像:SELECT 'x', 'y'.
  3. 开发人员2启动分支B并添加新列.他们的'向上'迁移看起来像:SELECT 'x', 'z'.
  4. 开发人员2首先完成她的分支并运行迁移.视图现在看起来像SELECT 'x', 'z'.
  5. 开发人员1现在完成他的分支并运行迁移.该视图现在看起来像SELECT 'x', 'y'开发人员2的更改已丢失.

mysql database doctrine database-migration ef-migrations

9
推荐指数
2
解决办法
438
查看次数

使用内联数据模拟MySQL记录

这可能听起来像一个奇怪的问题,但我很想知道它是否可能......

有没有办法使用内联数据模拟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)

mysql sql

5
推荐指数
1
解决办法
1739
查看次数

MySQL:如何找出级联删除中删除了哪些记录

我的项目中有 40 多个表,并且我已经应用了具有所有约束的级联删除。现在我的数据库有实时数据,所以我只想跟踪由于级联删除而发生的删除。

所以基本上我只想知道,如果我从用户表中删除任何一个用户(用户与 10 个以上的表有关系),那么所有的表都是表,哪些数据已被删除。

这样我就可以将它们记录在另一个文件中以供备份之用。

mysql 有什么办法吗?

mysql sql

5
推荐指数
1
解决办法
348
查看次数

如何将Laravel/Eloquent结果映射到自定义类

我正在寻找一种方法将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)最有意义.

php orm laravel eloquent laravel-4

4
推荐指数
1
解决办法
5235
查看次数

如何在外部应用程序中使用Laravel模型?

我目前有两个应用程序在不同的虚拟主机下运行在同一台服务器上.第一个是Laravel 4应用程序,第二个是较旧的PHP项目,它不使用框架,但遵循粗略的MVC模式.

我想找到一种方法来与旧的PHP项目中的Laravel应用程序进行交互并使用一些模型.

显然它不会像包含模型文件那么简单,因为它们会有各种依赖关系,所以在尝试这样做时,我应该考虑一些通用的方法或模式吗?

php laravel laravel-4

2
推荐指数
1
解决办法
1696
查看次数