我从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");
如果在一次调用中我需要的唯一三个变量是SurveyId和data数组以及sortOn,我知道这在cf中是一个简单的过程,但是我找不到正确的方法在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
}
答案 0 :(得分:2)
您不能按名称传递参数。如果需要,可以像这样将参数更改为数组:
public function search($param){
// your code here
}
$allRecords = (new MyController)->search(["surveyId"=>3762,"data"=>$myData,"sortOn"=>"name"]);