Yii 2.0 $request->post() 问题
Yii 2.0 $request->post() issues
在我的控制器中有以下几行
$request = Yii::$app->request;
print_r($request->post());
echo "version_no is ".$request->post('version_no',-1);
输出如下
Array
(
[_csrf] => WnB6REZ6cTAQHD0gAkoQaSsXVxB1Kh5CbAYPDS0wOGodSRANKBImVw==
[CreateCourseModel] => Array
(
[course_name] => test
[course_description] => kjhjk
[course_featured_image] =>
[course_type] => 1
[course_price] => 100
[is_version] => 1
[parent_course] => test
[version_no] => 1
[parent_course_id] => 3
[course_tags] => sdsdf
)
)
version_no is -1
所以这里 post() 的 return 值包含 version_no.But 当它被称为 $request->post("version_no")
时,它不是 returning 任何东西(或者$request->post("version_no",-1)
returns 默认值-1)。
根据 Yii 2.0 文档,语法正确并且应该 return post 参数的值。
但为什么它在我的 case.The 中失败 post 数组在 it.But 中有参数,函数在调用单个参数值时未 returning。
你的参数在 $_POST['CreateCourseModel']['version_no']
等 $request->post('version_no',-1)
你试图得到 $_POST['version_no']
没有定义所以它 returns 你 -1 。所以要得到 version_no 使用
$data = $request->post('CreateCourseModel');
print_r($data['version_no']);
您可以使用点表示法访问嵌套的 $_POST
数组元素:
\Yii::$app->request->post('CreateCourseModel.version_no', -1);
模型属性的分组类似于通过 $model->load(Yii::$app->request->post())
完成的大量分配。
根据您的需要,也许最好使用这样的默认值验证器:
['version_no', 'default', 'value' => -1],
在我的控制器中有以下几行
$request = Yii::$app->request;
print_r($request->post());
echo "version_no is ".$request->post('version_no',-1);
输出如下
Array
(
[_csrf] => WnB6REZ6cTAQHD0gAkoQaSsXVxB1Kh5CbAYPDS0wOGodSRANKBImVw==
[CreateCourseModel] => Array
(
[course_name] => test
[course_description] => kjhjk
[course_featured_image] =>
[course_type] => 1
[course_price] => 100
[is_version] => 1
[parent_course] => test
[version_no] => 1
[parent_course_id] => 3
[course_tags] => sdsdf
)
)
version_no is -1
所以这里 post() 的 return 值包含 version_no.But 当它被称为 $request->post("version_no")
时,它不是 returning 任何东西(或者$request->post("version_no",-1)
returns 默认值-1)。
根据 Yii 2.0 文档,语法正确并且应该 return post 参数的值。
但为什么它在我的 case.The 中失败 post 数组在 it.But 中有参数,函数在调用单个参数值时未 returning。
你的参数在 $_POST['CreateCourseModel']['version_no']
等 $request->post('version_no',-1)
你试图得到 $_POST['version_no']
没有定义所以它 returns 你 -1 。所以要得到 version_no 使用
$data = $request->post('CreateCourseModel');
print_r($data['version_no']);
您可以使用点表示法访问嵌套的 $_POST
数组元素:
\Yii::$app->request->post('CreateCourseModel.version_no', -1);
模型属性的分组类似于通过 $model->load(Yii::$app->request->post())
完成的大量分配。
根据您的需要,也许最好使用这样的默认值验证器:
['version_no', 'default', 'value' => -1],