- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
您好,当我尝试将模型的属性保存到数据库时遇到问题。我在 OctoberCMS 中编写,我有这个功能:
public function findActualNewsletter()
{
$actualNewsletter = Newsletter::where('status_id', '=', NewsletterStatus::getSentNowStatus())->first();
if (!$actualNewsletter) {
$actualNewsletter = Newsletter::where('send_at', '<=', date('Y-m-d'))->where('status_id', NewsletterStatus::getUnsentStatus())->first();
$actualNewsletter->status_id = NewsletterStatus::getSentNowStatus();
dd($actualNewsletter);
}
return $actualNewsletter;
}
getSentNowStatus()=2;
getUnsentStatus()=1;
dd($actualNewsletter) 在我的 if 语句中显示 status_id = 2 但在数据库中我仍然有 1。我在 afterSave() 中使用了这个函数所以我不需要:
$actualNewsletter->status_id = NewsletterStatus::getSentNowStatus();
$actualNewsletter->save();
因为我有错误所以我在保存中使用保存。当然,我填写了表格 $fillable =['status_id']。现在我不知道为什么它在转到我的 if 时不保存在数据库中。也许有人看到我的错误?
最佳答案
如果您试图根据一些自定义逻辑修改模型然后保存它,最好将它放在模型的beforeSave()
方法中。要访问当前保存的模型,只需使用 $this
。下面是 beforeSave()
方法的示例,用于在将模型保存到数据库之前修改模型的属性:
public function beforeSave() {
$user = BackendAuth::getUser();
$this->backend_user_id = $user->id;
// Handle archiving
if ($this->is_archived && !$this->archived_at) {
$this->archived_at = Carbon\Carbon::now()->toDateTimeString();
}
// Handle publishing
if ($this->is_published && !$this->published_at) {
$this->published_at = Carbon\Carbon::now()->toDateTimeString();
}
// Handle unarchiving
if ($this->archived_at && !$this->is_archived) {
$this->archived_at = null;
}
// Handle unpublishing, only allowed when no responses have been recorded against the form
if ($this->published_at && !$this->is_published) {
if (is_null($this->responses) || $this->responses->isEmpty()) {
$this->published_at = null;
}
}
}
您不必运行 $this->save()
或类似的东西。只需在 beforeSave()
方法中修改模型的属性即可完成您想要的。
关于php - 在 OctoberCMS 的 PHP 数据库中保存模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38643632/
我只是想知道如何在前端的octobercms中上传多个文件没有教程, 我正在使用 然后只得到最后上传的图像 $posting->posting->image=Input::file('posting
我只是想知道如何在前端的octobercms中上传多个文件没有教程, 我正在使用 然后只得到最后上传的图像 $posting->posting->image=Input::file('posting
根据 this section在十月CMS文档中,我应该可以设置这样的目录结构: pluginname ├── components │ ├── resumefilter │ │ ├──
October CMS如何过滤多个类别的博文?我正在使用 RainLab 博客插件。该插件只允许过滤一个类别。我想要一个综合结果。请帮忙。 最佳答案 您将需要使用一些自定义代码来根据多个类别进行过滤。
我想在后端渲染列表中显示图像。为此,如何获取显示图像的路径。我们试过 base_path() 方法。 但它给了我像“opt/lampp/htdocs/ashish/”这样的完整路径,但我想得到http
我运行了 php artisan october:env,我想知道如何在 View 中使用环境变量。 例如:
我运行了 php artisan october:env,我想知道如何在 View 中使用环境变量。 例如:
这是我的代码块,我想将 service 变量传递给组件。 {% for service in services %}
默认情况下,用户会被重定向到仪表板。我该如何更改它以便将用户重定向到我的插件页面? 最佳答案 后端 Controller 触发 backend.page.beforeDisplay 事件,我们可以在我
我是 10 月的新手,遇到了一个我无法解决的问题。当我从命令行创建一个插件,然后运行 插件:刷新 数据库中的表没有被创建。 version.yaml 根据文档是正确的。以下是文件的内容。 插件/M
我使用 Builder Plugin 创建了一个插件(将其称为产品)在它里面,我有一个下拉菜单(称之为product_category(产品类别)) 使用Builder Plugin,我添加了一些Ke
我使用 translate.rainlab 插件进行本地化,但不确定如何翻译 ajax 表单的 Flash 消息。 function onMailSend() { Mail::sendTo('
想知道是否有一种简单的方法来格式化后端列表列值。将数值作为货币的示例 最佳答案 晚了,但供引用: 如果仅用于后端列表,您可以轻松创建一个新的列类型 Currency 并使用它。 see documen
我正在使用 the following code (在页面的代码部分)将用户重定向到登录页面,如果他们没有登录: function onStart() { $user = $this->acc
我对 octobercms 非常陌生,并且有使用 laravel 4.2 的经验。 我想问如何在cmd中使用artisan创建表格?或者是在octobercms中不需要使用cmd来创建表?有详细教程的
鉴于以下代码: $car= new Car(); $car->name = Input::get('name'); $car->photo = Input::file('photo'); $car->
我是 octobercms 的新手,我想列出我项目中所有现有的命名空间和插件和模型,我该怎么做? 最佳答案 public function test_stat() { if(is_dir(('
我正在 October CMS 构建器上制作一个插件。在后端创建了几个数据库表、模型和表单。现在尝试添加表单元素(复选框)并希望从其他表中获取复选框值。 示例: Table 1: categories
我正在使用以下数据库配置 'mysql' => [ 'driver' => 'mysql', 'host' => 'localhost'
在我的一个页面中,我像这样执行数据库查询.. function onStart() { $this['numz'] = Db::table('backend_users')->select('
我是一名优秀的程序员,十分优秀!