Как я могу получить параметры URL от моего Laravel контроллера, используя Vue - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь получить параметры строки запроса. Я перепробовал все, что могу найти в SO, а также в обычном поиске Google, например:

URL = http://example.com?companyId=1&subcompany=3;
Then in my controller:
$companyId = $request->query('companyId');
$subcompany = $request->query('subcompany);

Итак, если я go до 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);
});

Так что, на самом деле, я не передаю данные компании, поскольку у меня ее нет в JS. Вместо этого мне нужно извлечь его из строки запроса. Я явно что-то упускаю, но не могу понять, что это такое. Может кто-нибудь увидеть, что не так с моим кодом?

1 Ответ

0 голосов
/ 16 марта 2020

вы можете передать параметр, как показано ниже

axios.get("api/getProds",{params:{companyId:this.companyId ,subcompany:this.brandId}}).then(res=>{
  console.log(res.data);
});

примечание: this.companyId, this.subcompany - реквизиты, которые вы создаете в vue

publick function getProds(Request $request){
 $products = Prod::where('companyId',$request->companyId)->where('subcompany',$request->brandId)->get();
}
...