【问题标题】:Saving mutiple integer in mysql database laravel在mysql数据库laravel中保存多个整数
【发布时间】:2017-11-07 00:42:42
【问题描述】:

当我尝试将数据保存到数据库中时,由于某种原因,我只能在其中保存 1 个整数而不是多个整数。谁能告诉我为什么?我在想这可能是因为我在数据库中使用 FamilyAge 作为整数而不是字符串。

这是我数据库中数据的截图,抱歉我放了一些奇怪的数据,我只是随机输入一些单词进行测试。 正如您在我的屏幕截图中看到的,最后一行,我想保存 3 个数据,但对于家庭年龄部分,只保存 1 个数据。

family_info 控制器(我是这样保存的)

public function submit(Request $request)
{

  $personal_info = Session::get('data');

  $data7 = array();
  $data7['NameOfFamily'] = implode(' , ', $request->NameOfFamily);
  $data7['Relationship'] = implode(' , ', $request->Relationship);
  $data7['FamilyAge'] = implode(' , ', $request->FamilyAge);
  $family_info = new family_info;
  $family_info = family_info::create($data7);
  $family_info->personal_infos()->associate($personal_info);
  $family_info->save();

}

familyInfos 表:

Schema::create('family_infos', function (Blueprint $table) {
    $table->increments('id');
    $table->engine = 'InnoDB';  
    $table->string('NameOfFamily');
    $table->string('Relationship'); 
    $table->integer('FamilyAge');
    $table->integer('user_id');
    $table->timestamps();
});

【问题讨论】:

  • 你的数据类型应该是 varchar 来存储字符串。当您添加逗号分隔的年龄时。
  • @Suraj 感谢您的回复,我的数据类型必须是 varchar 是什么意思?我怎么做?我只知道在数据库中我可以将其设置为 varchar 但我如何在代码中进行设置。你能给我举个例子吗?

标签: mysql database laravel integer


【解决方案1】:

通过查看您的架构,您正在为 FamilyAge $table->integer('FamilyAge'); 使用整数类型,它应该是一个字符串来存储逗号分隔值 $table->string('FamilyAge');

我想你想像这样22, 45, 56

Schema::create('family_infos', function (Blueprint $table) {
    $table->increments('id');
    $table->engine = 'InnoDB';  
    $table->string('NameOfFamily');
    $table->string('Relationship'); 
    $table->string('FamilyAge');
    $table->integer('user_id');
    $table->timestamps();
});

我建议你阅读这篇文章 https://laravel.com/docs/5.5/migrations#columns 解释了如何 创建 Laravel 迁移

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2012-05-28
    • 1970-01-01
    相关资源
    最近更新 更多