【问题标题】:laravel eloquen fucntion with() get only 3 columns from relation 2 tableslaravel 雄辩的函数 with() 从关系 2 表中仅获取 3 列
【发布时间】:2021-05-12 17:00:46
【问题描述】:

我需要 id_jornada、nombre_jornada 和关系学校: nombre_colegio 但最后一个 concat "nombre_jornada + nombre_colegio"

jornadaController

public function index(){
    $res = Jornada::where('estado', 1)->with('school:id,nombre_colegio')->get();

    return response()->json($res);
}

axios 响应

[
   {
      "id_jornada":1,
      "school_id":1,
      "nombre_jornada":"Matutina",
      "estado":1,
      "created_at":null,
      "updated_at":"2021-02-05T21:19:17.000000Z",
      "school":{
         "id":1,
         "nombre_colegio":"La pradera"
      }
   },
   {
      "id_jornada":3,
      "school_id":7,
      "nombre_jornada":"Vespertina",
      "estado":1,
      "created_at":"2021-02-05T23:26:12.000000Z",
      "updated_at":"2021-02-06T00:09:45.000000Z",
      "school":{
         "id":7,
         "nombre_colegio":"La pradera"
      }
   }
]

但我需要这样。

{
  "id_jornada":[
      "nombre_jornada + nombre_colegio",
    ]
}

json

{
  "1":[
      "Matutina La pradera",
    ],
  "3":[
      "Vespertina La pradera",
   ]
}

【问题讨论】:

    标签: mysql laravel eloquent eloquent-relationship


    【解决方案1】:

    您可以使用 foreach 并制作该数组

    public function index()
    {
        $jornada = Jornada::where('estado', 1)->with('school:id,nombre_colegio')->get();
        $result = [];
        foreach ($jornada as $row) {
            $res[] = $row->nombre_jornada . ' ' . $row->school->nombre_colegio ?? "";
        }
    
        return response()->json($result);
    }
    

    【讨论】:

    • 工作一般,但我需要关键自定义,是 id_jornada。我能怎么做?回复["Matutina La pradera", "Vespertina La pradera"] 0: "Matutina La pradera"1: "Vespertina La pradera"
    • 你现在可以检查一下这是你的样子吗?
    • 不,返回0: "Matutina La pradera" 1: "Vespertina La pradera
    • 你想返回数组吗?
    • 我还需要您第一个答案中的密钥,只是我需要自定义密钥,但您给了我一个想法。我可以使用 foreach 来处理集合和 2d 想法。` $ob = array(); foreach ($res as $key => $value) { $ob[$value['id']] = $value['nombre_jornada']. ' ' 。 $value['sede']['nombre_colegio']; } 返回响应()->json($ob);`
    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 2021-08-09
    • 2016-07-22
    • 2017-03-22
    • 1970-01-01
    • 2021-05-04
    • 2020-12-02
    • 2016-03-09
    相关资源
    最近更新 更多