【问题标题】:Best way to check if a Model exists in a many-to-many relationship检查模型是否存在于多对多关系中的最佳方法
【发布时间】:2017-01-18 15:41:16
【问题描述】:

我有一些数据正在发布到服务器,并且正在根据该数据(一个 ID)检索 Player。我正在使用以下代码:

$player = Player::findOrFail($player_data['id']);

但是,我想检查此 Player 是否属于特定的 Team - belongsToMany 关系。

有没有比这样更好的方法:

if (! count($player->team()->find($teamId))) {
    // exit early, form may have been 'hacked'
    abort(404);
}

?

team() 而不是teams(),尽管它是多对多的。

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    使用contains()方法:

    $player->team->contains($teamId);
    

    contains 方法确定集合是否包含给定项

    【讨论】:

    • 谢谢!那么,将id 传递给contains 是否合适?
    • @AshMenhennet,虽然有可能但可能会成为陷阱,我建议先检索团队并将其作为参数传递。查看链接中的第二个示例..
    • @AshMenhennett 是的,这是合适的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2013-01-08
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多