4

Laravel と言ってあまりに具体的な質問をしている場合は、私を爆破することができますが、Laravel 内のツールを使用して 2 つのデータセットを連鎖させる最も効率的な方法は何なのか疑問に思っています。

雄弁なリレーションシップを使用するか、クエリ ビルダーを使用して結合するかを選択する際に、使用すべき特定の考え方はありますか? または、考慮すべき小規模または大規模なデータセットでクエリビルダーを使用することの欠点はありますか?

ユーザー テーブルから 1 つまたは 2 つのフィールドのみを必要とするチケット システムを構築しています。この時点でリレーションシップの使用を検討するのは非常にやり過ぎに思えますが、システムのニーズが高まると、コードが乱雑になる可能性があります。これは、関係が解決するためにあるという状況ですか?

雄弁なリレーションシップを使用する際に注意すべきカップリング タイプのアクションはありますか?

質問の仕方がよくわからない場合は、言い換えてみます。

4

1 に答える 1

1

私が行ったように、Eloquent モデルにいくつかの単純なリレーションシップ メソッドを設定すると、Eloquent のパワー (したがって、使いやすさとシンプルさ) が解き放たれることがわかると思います。たとえば、カスタム結合コードを作成するか、次のような構造を使用しますか?

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

あなたは Laravel の初心者のようですね。Laravel マニュアルのリレーションシップに関するページを読むことを強くお勧めします。多くの素晴らしい例があります。また、リレーションシップに関する 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
于 2016-08-09T01:30:24.203 に答える