common\models\Post Object ( [cat] => [file] => [time_create] => [datefarsi] => [tag] => [_attributes:yii\db\BaseActiveRecord:private] => Array ( [id] => 980 [title] => render several models [body] =>
چطور با یک فرم چند مدل را رندر کنیم
فرض کنیم که میخواهیم علاوه بر ساخت یک مدل کاربر هم ثبت نام کند
فرم ما به این شکل خواهد بود
field($model, 'name')->textInput(['maxlength' => true]) ?>
field($model, 'file')->fileInput() ?>
user->identity->id) { ?>
field($user, 'name')->textInput() ?>
field($user, 'username')->textInput() ?>
field($user, 'password_hash')->textInput() ?>
'btn btn-success']) ?>
در این فرم دو مدل داریم ($model, $user)
در کنترلر و فرم باید این دو مدل رو بفرستیم به صورت زیر
در کنترلر
return $this->render('create', [
'model' => $model,
'user'=>$user,
]);
در فرم
render('_form', [
'model' => $model,
'user' => $user,
]) ?>
چطور با یک فرم چند مدل را رندر کنیم
فرض کنیم که میخواهیم علاوه بر ساخت یک مدل کاربر هم ثبت نام کند
فرم ما به این شکل خواهد بود
field($model, 'name')->textInput(['maxlength' => true]) ?>
field($model, 'file')->fileInput() ?>
user->identity->id) { ?>
field($user, 'name')->textInput() ?>
field($user, 'username')->textInput() ?>
field($user, 'password_hash')->textInput() ?>
'btn btn-success']) ?>
در این فرم دو مدل داریم ($model, $user)
در کنترلر و فرم باید این دو مدل رو بفرستیم به صورت زیر
در کنترلر
return $this->render('create', [
'model' => $model,
'user'=>$user,
]);
در فرم
render('_form', [
'model' => $model,
'user' => $user,
]) ?>
An Error occurred while handling another error: yii\web\HeadersAlreadySentException: Headers already sent in /home/avishost/public_html/frontend/controllers/PostController.php on line 75. in /home/avishost/public_html/vendor/yiisoft/yii2/web/Response.php:366 Stack trace: #0 /home/avishost/public_html/vendor/yiisoft/yii2/web/Response.php(339): yii\web\Response->sendHeaders() #1 /home/avishost/public_html/vendor/yiisoft/yii2/web/ErrorHandler.php(136): yii\web\Response->send() #2 /home/avishost/public_html/vendor/yiisoft/yii2/base/ErrorHandler.php(123): yii\web\ErrorHandler->renderException(Object(yii\base\ErrorException)) #3 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\base\ErrorException)) #4 {main} Previous exception: yii\base\ErrorException: session_set_cookie_params(): Cannot change session cookie parameters when headers already sent in /home/avishost/public_html/vendor/yiisoft/yii2/web/Session.php:399 Stack trace: #0 [internal function]: yii\base\ErrorHandler->handleError(2, 'session_set_coo...', '/home/avishost/...', 399, Array) #1 /home/avishost/public_html/vendor/yiisoft/yii2/web/Session.php(399): session_set_cookie_params(Array) #2 /home/avishost/public_html/vendor/yiisoft/yii2/web/Session.php(135): yii\web\Session->setCookieParamsInternal() #3 /home/avishost/public_html/vendor/yiisoft/yii2/web/Session.php(630): yii\web\Session->open() #4 /home/avishost/public_html/vendor/yiisoft/yii2/web/Session.php(769): yii\web\Session->get('__flash', Array) #5 /home/avishost/public_html/common/widgets/Alert.php(51): yii\web\Session->getAllFlashes() #6 /home/avishost/public_html/vendor/yiisoft/yii2/base/BaseObject.php(109): common\widgets\Alert->init() #7 [internal function]: yii\base\BaseObject->__construct(Array) #8 /home/avishost/public_html/vendor/yiisoft/yii2/di/Container.php(392): ReflectionClass->newInstanceArgs(Array) #9 /home/avishost/public_html/vendor/yiisoft/yii2/di/Container.php(159): yii\di\Container->build('common\\widgets\\...', Array, Array) #10 /home/avishost/public_html/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('common\\widgets\\...', Array, Array) #11 /home/avishost/public_html/vendor/yiisoft/yii2/base/Widget.php(137): yii\BaseYii::createObject(Array) #12 /home/avishost/public_html/frontend/views/layouts/main.php(294): yii\base\Widget::widget() #13 /home/avishost/public_html/vendor/yiisoft/yii2/base/View.php(348): require('/home/avishost/...') #14 /home/avishost/public_html/vendor/yiisoft/yii2/base/View.php(257): yii\base\View->renderPhpFile('/home/avishost/...', Array) #15 /home/avishost/public_html/vendor/yiisoft/yii2/base/Controller.php(401): yii\base\View->renderFile('/home/avishost/...', Array, Object(frontend\controllers\PostController)) #16 /home/avishost/public_html/vendor/yiisoft/yii2/base/Controller.php(387): yii\base\Controller->renderContent('\n<!--end loadin...') #17 /home/avishost/public_html/frontend/controllers/PostController.php(84): yii\base\Controller->render('view', Array) #18 [internal function]: frontend\controllers\PostController->actionView('980') #19 /home/avishost/public_html/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array) #20 /home/avishost/public_html/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array) #21 /home/avishost/public_html/vendor/yiisoft/yii2/base/Module.php(528): yii\base\Controller->runAction('view', Array) #22 /home/avishost/public_html/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('post/view', Array) #23 /home/avishost/public_html/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) #24 /home/avishost/public_html/frontend/web/index.php(21): yii\base\Application->run() #25 {main}