Php 可以在Laravel中按名称传递变量吗
我是从CF到PHP,特别是Laravel,所以我为这样一个基本的问题道歉 我在控制器中有一个功能:Php 可以在Laravel中按名称传递变量吗,php,laravel,laravel-5,Php,Laravel,Laravel 5,我是从CF到PHP,特别是Laravel,所以我为这样一个基本的问题道歉 我在控制器中有一个功能: public function search( $surveyId = 0 , $sampleId = 0 , $data = [] , $dataSeg = 0 , $returnLimit = 1000 , $returnStartRow = 1 , $sortOn = "" , $sortDir = "" , $previousData = [] ){
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
}
不能按名称传递参数。如果需要,请将参数更改为数组,如下所示:
public function search($param){
// your code here
}
$allRecords = (new MyController)->search(["surveyId"=>3762,"data"=>$myData,"sortOn"=>"name"]);
不能按名称传递参数。如果需要,请将参数更改为数组,如下所示:
public function search($param){
// your code here
}
$allRecords = (new MyController)->search(["surveyId"=>3762,"data"=>$myData,"sortOn"=>"name"]);
只要试一下,你就可以在你的手上看到结果。PHP不支持按名称传递。您需要给出所有中间值。请尝试一下,您可以在您的手持设备上看到结果。PHP不支持按名称传递。您需要给出所有中间值。