在laravel

时间:2016-08-08 23:03:37

标签: sql laravel join laravel-query-builder

现在你可以爆炸我,如果我特别提问这个问题,说Laravel,但我想知道,将两个数据集与Laravel中的工具链接在一起的最有效方法是什么。

在使用雄辩的关系和与查询构建器的连接之间进行选择时,是否应该使用特定的思维模式?或者我应该考虑在较小或较大的数据集上使用查询构建器的任何缺点?

我正在构建一个只需要用户表中的一个或两个字段的票证系统,此时考虑使用关系似乎非常高,但如果系统需求增加,则可能导致凌乱的代码。这是关系有待解决的情况吗?

当使用我应该注意的雄辩关系时,是否会发生耦合类型动作?

如果我真的不清楚我是如何提出这个问题的话,我会尝试重新编写。

1 个答案:

答案 0 :(得分:1)

我想你会发现,在你的Eloquent模型中设置几个简单的关系方法可以释放出Eloquent的力量(以及简单易用性)。例如,您是否愿意编写自定义连接代码或使用如下结构:

foreach($user->tickets as $ticket) { ... etc ... }

听起来你对Laravel来说很新。我强烈建议您阅读Laravel manual中有关关系的页面。有很多很好的例子。还有关于关系here的Laracast视频教程。我与该网站没有任何关系。

门票类:

<?php
class Ticket extends Model {
    public function user() {
        return $this->belongsTo('User');
    }
}

用户类:

<?php
class User extends Model {
    public function tickets() {
        return $this->hasMany('Ticket');
    }
}

只要你有这样的表设置:

tickets (table)
- id
- user_id

users (table)
- id

此示例假定模型位于全局命名空间中。然后,您可以从票证中获取用户数据,如下所示:

$ticket->user->first_name
$ticket->user->last_name