为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel中如何根据id条件获取数据

Laravel中如何根据id条件获取数据

PHP
天涯尽头无女友 2023-07-30 14:03:14
我正在尝试根据 case_id 获取数据,该数据来自 Cases 表,并且我在套接字表中查找 (case_id),但我在响应中得到空数组:这是我的控制器:public function index($case_id)    {        $id = kase::find($case_id);        $data = DB::table('sockets')->where('case_id',$id)->get();        return $data;    }我的路线: Route::get('/case-log/{id}', 'CaseLogController@index');我哪里错了?
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

kase::find($case_id) 为 null,因为 laravel 假定主键和索引名为“id”。要在您的型号上覆盖此设置kase,请按如下方式进行设置。您还可以按如下方式建立与模型的关系socket:


class kase extends Model

{

    ...

    protected $primaryKey = 'case_id';

    ...

    

    

    public function sockets()

    {

        return $this->hasMany(socket::class, 'case_id');

    }

}

此外,您还需要让控制器方法参数与路线参数相匹配。所以:


public function index($id)

{

    $case = kase::with('sockets')->find($id);

   

    return $case->sockets;

}


查看完整回答
反对 回复 2023-07-30
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

路由中的 slug 名称应与方法中的参数名称匹配,index因此您必须更改其中之一


Route::get('/case-log/{case_id}', 'CaseLogController@index');


public function index($case_id)

{

    $id = kase::find($case_id);


    $data = DB::table('sockets')->where('case_id',$id)->get();

    return $data;

}


查看完整回答
反对 回复 2023-07-30
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信