代码之家  ›  专栏  ›  技术社区  ›  Mav

如何在拉拉维尔建立一段贝朗斯托式的关系?

  •  0
  • Mav  · 技术社区  · 6 年前

    我有一个叫 Log . 它有一个外键 hash_id 和A belongsTo 与…的关系 App\Hash .

    我知道我可以通过调用 Log::with('hash') 如上所述 here . 我想做的是检索相应哈希列的特定行,而不是每一行。所以有点像 Log::with('hash', ['only' => 'name']) .这是因为我通过Ajax发送数据,不想用它发送很多不必要的列。我该怎么做?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Jignesh Joisar    6 年前

    你可以用两种方法

    使用匿名函数

    Log::with(['hash' => function($query) { 
        return $query->select('id','text');
    }])->get();
    

    第二条道路

      Log::with('hash:id,text')->get();
    

    记住一件事,您需要选择关系列,否则 它不起作用

    更多信息请阅读此 article

        2
  •  1
  •   Patrick Schocke    6 年前

    您必须使用 :

    Log::with('hash:id,text')
    

    这将只返回ID和文本。

    旁注:您需要选择外键,否则关系为空

    Here you can read more about it