如何在表单中传递用户ID
How to pass user id in form
我创建了一个名为 posts 的 table,并使用 author_id 外键将帖子 table 链接到用户 table。
我还为帖子页面创建了一个控制器、模型和 crud。
在帖子页面中,我希望在 _form.php 视图文件的表单中自动传递用户 ID,而无需自己手动输入。请问如何操作?
我要做的就是获取表单中的用户 ID,以便将其存储在该用户的网格中。
这里是 _form.php 代码:
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model frontend\models\Posts */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="posts-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'posts_title')->textInput(['maxlength' => 100]) ?>
<?= $form->field($model, 'posts_description')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'author_id')->textInput() ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
在控制器中执行此操作:
$model->author_id = Yii::$app->user->id;
如果您希望用户无法更改 author_id,您可以删除 author_id
的元素。
您也可以在您的视图中设置输入的默认值。
我创建了一个名为 posts 的 table,并使用 author_id 外键将帖子 table 链接到用户 table。
我还为帖子页面创建了一个控制器、模型和 crud。
在帖子页面中,我希望在 _form.php 视图文件的表单中自动传递用户 ID,而无需自己手动输入。请问如何操作?
我要做的就是获取表单中的用户 ID,以便将其存储在该用户的网格中。
这里是 _form.php 代码:
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model frontend\models\Posts */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="posts-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'posts_title')->textInput(['maxlength' => 100]) ?>
<?= $form->field($model, 'posts_description')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'author_id')->textInput() ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
在控制器中执行此操作:
$model->author_id = Yii::$app->user->id;
如果您希望用户无法更改 author_id,您可以删除 author_id
的元素。
您也可以在您的视图中设置输入的默认值。