mysql - Yii 在其他模型中调用 beforeSave() 来保存

标签 mysql yii model relationship before-save

我创建了两个表,forum_post 和 gallery。

forum_post 表:

id user_id ststus photo_id

1 1 嗨...!空
2 1 你好!空
3 1 空 1

4 1 空 2

user_gallery 表:

id user_id 图片视频

1 1 1.jpg 空

2 1 new.gif NULL

当用户在 user_gallery 表中上传图像文件时,我想在 forum_post 表中创建一行并将图库 ID 存储到 forum_post-> image 字段中。以及用户 ID 也存储在 forum_post 表中。

我在论坛帖子中的模型代码是:

public static function addForumImage($id, $user_id) {
    $forumImage = ForumPost::model()->find('LOWER(photo_id) = ?',  array( strtolower($image)));
    if (!$forumImage) {
        $forumImage = new ForumPost;
        $forumImage->photo_id = $image;
        $forumImage->save(false);
    }

UserGallery beforeSave 函数是:

protected function beforeSave() {
    if (parent::beforeSave()) {

        ForumPost::addForumImage($this->id, $this->user_id);
        // var_dump($forumPost->photo_id);
        return true;
    }
    return false;
}

我的表关系是,user_gallery->image指的是forum_post->photo_id。

现在,图像存储在 user_gallery 文件夹中,我在 ForumPost 模型中获取 ID... 请任何人帮助我.. :(

最佳答案

试试这个

protected function beforeSave() {
    if (parent::beforeSave()) {

        ForumPost::addForumImage($this->id, $this->user_id, $this->forum_image);
        // var_dump($forumPost->photo_id);
        return true;
    }
    return false;
}

模型

    public static function addForumImage($id, $user_id,$image) {
        $forumImage = ForumPost::model()->find('photo_id = :image',  array( ':image'=>strtolower($image)));
        if (empty($forumImage)) {
            $forumImage = new ForumPost;
            $forumImage->user_id=$user_id;
            $forumImage->content= NULL
            $forumImage->photo_id = $image;
            $forumImage->save(false);
        }
}

关于mysql - Yii 在其他模型中调用 beforeSave() 来保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20796598/

相关文章:

ruby-on-rails - Rails find_or_create_by 不止一个属性?

ruby-on-rails - 如何在销毁中跳过关联回调

php - 将时间字符串存储到 Laravel 中的 TIME 列

android - 创建一个可以与 Web/iOS/Android 一起工作的数据库

MySQL - 建议链接多个表 - 这是正确的吗?

Php通过.htaccess重写url

javascript - Sails JS-深度填充相同模型和属性

mysql - MariaDB 服务器运行速度比我们可以复制的任何东西快 10 倍。想法为什么?

php - 如何像在 YII php 中的 gmail 注册一样实现密码强度?

php - 删除时的两个确认对话框