我正在尝试获取查询字符串参数。我已经尝试了所有我可以在 SO 上找到的东西以及一般的谷歌搜索,如下所示。
URL = http://example.com?companyId=1&subcompany=3;
Then in my controller:
$companyId = $request->query('companyId');
$subcompany = $request->query('subcompany);
因此,如果我访问 mysite.com/api/getcompany?companyId=1&subcompany=3,我会看到我所期望的。我什至得到了我期望得到的结果。问题是,当它传回 Vue 时,它根本不是我所期望的。相反,我得到了数据库中所有公司的列表,其中 companyId 为空值,子公司为空值。在查看 Telescope 时,实际处理的查询是
select * from `prods` where
(
`companyId` = '..'
and `subCompany` = ''
)
and `products`.`deleted_at` is null
然而,在我的控制器方法中,这就是我传入的内容
$products = Prod::where([
['companyId', '=', $companyId ],
['subcompany','=', $brandId]
])
->get();
在我的 Vue 组件中,这就是我进行调用的方式,
axios.get("api/getProds").then(res=>{
console.log(res.data);
});
因此,实际上并没有传递 companyId,因为我在 JS 中没有它。相反,我需要从查询字符串中提取它。我显然错过了一些东西,但我无法弄清楚它是什么。有人可以看到我的代码有什么问题吗?