【问题标题】:Laravel - Attaching "user_id" to "hangout_id"Laravel - 将“user_id”附加到“hangout_id”
【发布时间】:2016-05-27 10:30:56
【问题描述】:

我想创建一个网站,其中显示“环聊”,用户可以点击“加入”并参加活动。

我想这样当用户点击加入时,他们的 user_id 会附加到 hangout_user 数据透视表中的相关 hangout_id。通过这样做,他们的名字应该被附加到与会者列表的底部。

我尝试使用表单提交来附加 user_id,但我很确定我做错了。

如何正确创建此加入按钮?

网站截图

加入按钮和显示与会者的代码

{!! Form::model($hangout['method' => 'PATCH', 'action' => ['HangoutController@update', $hangout->id]]) !!}

<div class="form-group panel-footer" style="text-align:center">
    {!! Form::submit('Join', ['class' => 'btn btn-primary', 'style'=>"width:45%"]) !!}
</div>

{!! Form::close() !!}

<table class="table">
    <thead>
        <tr>
            <th style="width:33%;padding-left:3%">Attendees</th>
            <th style="width:33%">First Name</th>
            <th style="width:33%">Surname</th>
        </tr>
    </thead>
    <tbody>
        @foreach ($hangout->users as $user)
            <tr>
                <td style="padding-left:5%">{{1}}</td>
                <td>{{$user->firstname}}</td>
                <td>{{$user->surname}}</td>
            </tr>
        @endforeach
    </tbody>
</table>

非常感谢您的宝贵时间:)

已编辑以添加更多详细信息

我追求的结果是数据透视表 hangout_user 具有 hangout_id 和 user_id 行。以下图为例,这意味着用户 1 将参加环聊 1 和环聊 2。

【问题讨论】:

  • 你能解释一下你想在数据库中得到什么样的结果
  • 嗨 Yagnik - 我已经编辑了帖子以包含更多信息。希望这会有所帮助
  • 为什么不使用ajax 来加入活动 更新相关hangout_id 的相关表添加user_id 并放置ajax 成功的新html 并删除已经加入活动的加入按钮。跨度>
  • 不幸的是,因为我不知道如何 :( 我对编程很陌生,所以在学习各种教程时仍在学习...请您指导我正确的方向吗?

标签: php mysql laravel relationship pivot-table


【解决方案1】:

您可以在环聊表中添加attendees 列。然后像这样存储参加者:

[0,2,5,7,18,21,4]

每个数字代表一个用户名的ID。

所以基本上当用户“加入”一个环聊时,你会获取整个环聊的参加者值,对其进行解码,将用户的 ID 推送到数组中,然后再次更新该值(当然是在编码之后)。

如果您在提交表单后不确定如何执行操作,可以这样做:

{!! Form::open(array('action' => 'HangoutsController@someAction')) !!}

【讨论】:

  • 嗨,爱丽儿 - 感谢您的帮助。这会比使用数据透视表并附加 user_id 更容易吗?类似于... $hangout->users()->attach(Auth::user()->id) ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-12
  • 2012-12-02
  • 2023-04-03
  • 2018-06-25
  • 2019-05-27
  • 2014-09-25
  • 1970-01-01
相关资源
最近更新 更多