首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Laravel 4中更新枢轴表的附加列

在Laravel 4中更新枢轴表的附加列
EN

Stack Overflow用户
提问于 2015-05-30 23:09:44
回答 1查看 78关注 0票数 0

我有以下模式:

代码语言:javascript
运行
复制
public function up()
    {
        Schema::create('messages', function(Blueprint $table) {
            $table->increments('id');
            $table->mediumText('subject');
            $table->text('message');
            $table->boolean('draft');
            $table->integer('sender_id')->unsigned();
            $table->softDeletes();
            $table->timestamps();

            $table->foreign('sender_id')->references('id')->on('users')->onUpdate('cascade');
        });

        Schema::create('message_assets', function(Blueprint $table) {
            $table->increments('id');
            $table->integer('message_id')->unsigned();
            $table->string('filename', 255);
            $table->softDeletes();

            $table->foreign('message_id')->references('id')->on('messages')->onUpdate('cascade');
        });

        Schema::create('message_users', function(Blueprint $table) {
            $table->increments('id');
            $table->integer('message_id')->unsigned();
            $table->integer('user_id')->unsigned();
            $table->integer('read')->default(0);
            $table->string('folder', 255)->nullable();
            $table->softDeletes();

            $table->foreign('message_id')->references('id')->on('messages')->onUpdate('cascade');
            $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade');
        });
    }

我想要做的是,当用户查看消息时,将pivot表中的read列更新为true。我已经确定了控制器如何从枢轴获取相关记录,并只更新read字段。

下面是我们的关系:

代码语言:javascript
运行
复制
public function to()
{
    return $this->belongsToMany('SeriousJelly\Modules\Users\Models\User', 'message_users', 'message_id', 'user_id');
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-31 02:45:32

我有点不清楚你到底想要什么。一个小小的控制器代码可能会很好地看到您已经尝试了什么和您正在尝试做什么。

尽管如此,这可能会奏效。

代码语言:javascript
运行
复制
$message->to()->updateExistingPivot($user_id, ['read'=> 1]);

使用to有点模棱两可,假设这是在Message模型上的话,我可能会使用user使其更加清晰。

文档有一些好的信息。

每个评论的更新

下面的代码在Laravel 5中工作,但我不确定4.2。

代码语言:javascript
运行
复制
$message->to()->sync([$user_id => ['read'=> 1]], false);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30552249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档