Я перешел с CF на PHP, в частности на Laravel, поэтому я прошу прощения за такой основной вопрос.
У меня есть функция в контроллере:
public function search(
$surveyId = 0
, $sampleId = 0
, $data = []
, $dataSeg = 0
, $returnLimit = 1000
, $returnStartRow = 1
, $sortOn = ""
, $sortDir = ""
, $previousData = []
){
// bunch of code
}
Мне интересно, возможно ли передать только определенные переменные, которые необходимы, как я могу в cf? Попытка сделать что-то вроде этого:
$myData = [
"State" => "AZ"
];
$allRecords = (new MyController)->search($surveyId=3762,$data=$myData,$sortOn="name");
Я знаю, что это простой процесс в cf, если единственными тремя переменными, которые мне нужны для конкретного вызова, являются, в данном случае, surveyId, массив данных и sortOn, но я не могу найти правильный способ сделать это в Laravel (php) или даже если это вообще возможно. Кстати, я использую Laravel 5.7
РЕЗУЛЬТАТ:
Основываясь на ответе @ Nguyen, вот как выглядело начало моего контроллера, если это будет полезно для кого-то другого:
public function search($params){
// parameters that should be passed in
$surveyId = key_exists("surveyId", $params) ? $params['surveyId'] : 0;
$sampleId = key_exists("sampleId", $params) ? $params['sampleId'] : 0;
$data = key_exists("data", $params) ? $params['data'] : [];
$dataSeg = key_exists("dataSeg", $params) ? $params['dataSeg'] : 0;
$returnLimit = key_exists("returnLimit", $params) ? $params['returnLimit'] : 1000;
$returnStartRow = key_exists("returnStartRow", $params) ? $params['returnStartRow'] : 1;
$sortOn = key_exists("sortOn", $params) ? $params['sortOn'] : "";
$sortDir = key_exists("sortDir", $params) ? $params['sortDir'] : "";
$previousData = key_exists("previousData", $params) ? $params['previousData'] : [];
// end parameters that should be passed in
## logic code
}