如何在表单中传递用户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 的元素。

您也可以在您的视图中设置输入的默认值。