我试图找出在 Yii2 中处理接收关系数据的表单的正确方法。我还没有找到任何好的例子。我有 2 个模型 Sets 和 SetsIntensity,每个 Set 可能有一个与其关联的 SetsIntensity。我正在尝试制作一个可以同时输入两者的表格。我不确定如何处理获取 SetsIntensity 中特定字段“强度”的输入。
在哪里
$model = new \app\models\Sets();
Run Code Online (Sandbox Code Playgroud)
如果我把它放在像这样的字段中,客户端验证将不起作用,并且属性名称不明确并且保存变得困难
<?= $form->field($model, 'lift_id_fk') ?>
<?= $form->field($model, 'reps') ?>
<?= $form->field($model, 'sets') ?>
<?= $form->field($model, 'type') ?>
<?= $form->field($model, 'setsintensity') ?>
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情,但如果这样做我会收到错误
<?= $form->field($model, 'setsintensity.intensity') ?>
Exception (Unknown Property) 'yii\base\UnknownPropertyException' with message 'Getting unknown property: app\models\Sets::setsintensity.intensity'
Run Code Online (Sandbox Code Playgroud)
我可以在控制器中创建另一个对象$setsintensity = new Setsintensity();,但我觉得这是一个麻烦的解决方案,并且可能不是一个好的实践,特别是对于处理多个关系
<?= $form->field($setsintensity, 'intensity') ?>
Run Code Online (Sandbox Code Playgroud)
SetsModel 的相关代码
class Sets extends \yii\db\ActiveRecord
{
public function scenarios() {
$scenarios = parent::scenarios();
$scenarios['program'] = …Run Code Online (Sandbox Code Playgroud)