【问题标题】:Laravel 4: how to make a column in an Eloquent model uniqueLaravel 4:如何使 Eloquent 模型中的列独一无二
【发布时间】:2013-01-30 03:39:06
【问题描述】:

我有一个 Eloquent 模型 Article,它有一个列 title_url,它应该是唯一的,所以可能不存在两个具有相同 title_urlarticles。如果两个这样的articles 已经存在,我不想返回错误,我只想默默地更改一个title_url。所以不是super-article,而是title_url 将是super-article-2

如何在 Laravel 4 中做到这一点?也许使用mutators?如果是,最好的方法是什么?

请记住,我希望 title_url 的转换在每次必要时(更新、插入)静默进行。

【问题讨论】:

    标签: orm laravel laravel-4


    【解决方案1】:

    In the lastest Beta 4 build of Laravel 4,现在可以选择挂钩创建和更新事件:

    添加了 Model::creating(Closure) 和 Model::updating(Closure) 方法,用于挂钩 Eloquent 保存事件。感谢 Phil Sturgeon 最终迫使我这样做...... :)

    所以这似乎是您想要的完美选择。只需在模型的create() 中创建一个挂钩,然后创建一个简单的函数来检查您要插入的title_url,如果存在,将其更改为其他内容,然后插入。

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 2013-07-20
      • 2021-10-01
      • 1970-01-01
      • 2014-03-27
      • 2013-01-30
      • 1970-01-01
      • 2013-05-25
      相关资源
      最近更新 更多