【问题标题】:How to insert data in the enum field?如何在枚举字段中插入数据?
【发布时间】:2019-07-22 07:53:15
【问题描述】:

我的迁移中有一个 enum 字段。代码在这里:

 Schema::create('clients', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->string('preview_img');
        $table->enum('platform', ['android', 'ios']);
        $table->integer('sort')->default(0)->nullable();
        $table->timestamps();
    });

我正在尝试在枚举中插入以下数据:

我在Client 模型中有protected $fillable = ['platform'];。 但结果我看到以下内容:

我的错误在哪里? 我试过这个变种:

 $platform = '';
    foreach ($request->platform as $p) {
        $platform .= $p . ',';
    }
    $platform = rtrim($platform, ',');
    $client->platform = $platform;

但它也不起作用。

【问题讨论】:

  • 您需要在$request->platform 字段中传递唯一的字符串“android”或“ios”。你能dd请求对象并检查你得到的$request->platform字段的值吗?
  • 谢谢。我现在就试试。

标签: laravel eloquent laravel-migrations


【解决方案1】:

您在 $request->platform 上收到一个数组。确保您只向控制器发送一个选项,这样:

在您的观点中:

<select name='platform'>
  <option value="android">Android</option>
  <option value="ios">Ios</option>
</select>

在您的控制器中:

$client->platform = $request->platform

如果这不起作用,请将其放在您的代码dd($request-&gt;platform) 上,然后显示给我们

【讨论】:

  • 在我的问题中,我有一张带有 xdebug 会话屏幕的图片。它很好地展示了我在$request-&gt;platformi.stack.imgur.com/xbXyV.png
  • 嗯,这很奇怪,试试这个:$request-&gt;platform[0] 我不知道为什么 laravel 将“Android”识别为一个数组,但这应该可以工作。
  • 使用 $request-&gt;platform[0] 可能不是最好的解决方案,因为它可能总是提供 Android 选项。如果您添加发送请求的视图代码和dd($request-&gt;platform),将会很有帮助。
猜你喜欢
  • 2016-08-03
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 2019-12-11
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
相关资源
最近更新 更多