我想将数组作为字符串存储在open_hours字段中。我该怎么做。 请帮助我。这就是我的代码。预先感谢
$company = Company::create([
'company_name' => $request->input('company_name'),
'company_picture'=> $company_picture,
'address' => $request->input('address'),
'latitude' => $request->input('latitude'),
'longitude' => $request->input('longitude'),
'zipcode' => $request->input('zipcode'),
'city' => $request->input('city'),
'country' => $request->input('country'),
'open_hours' => $request->input('open_hours'),
'subcategory_id' => $request->input('subcategory_id'),
'price' => $request->input('price'),
'age_limit' => $request->input('age_limit'),
'company_description' => $request->input('company_description'),
]);
答案 0 :(得分:1)
您可以将其JSON
存储在数据库中,并使Laravel将其作为数组处理(广播)。
数组和JSON转换
array
强制类型在处理列时特别有用 存储为序列化的JSON。例如,如果您的数据库具有 包含序列化JSON的JSON
或TEXT
字段类型,添加array
强制转换为该属性会自动反序列化 在Eloquent模型上访问PHP数组时将属性赋给它:<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'options' => 'array', ]; }
定义了强制类型转换后,您可以访问
options
属性,然后 它将自动从JSON反序列化为PHP数组。什么时候 您设置options
属性的值,给定的数组将 自动序列化回JSON以进行存储:$user = App\User::find(1); $options = $user->options; $options['key'] = 'value'; $user->options = $options; $user->save();
因此,您可以在Company
模型中做到这一点:
app / Company.php
class Company extends Model
{
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'open_hours' => 'array',
];
}
当然,您应该将open_hours
列定义为JSON
/ TEXT
列:
database / migrations / create_companies_table.php //您的迁移文件
public function up()
{
Schema::create('companies', function (Blueprint $table) {
// ...
$table->json('open_hours');
// ...
});
}
现在,每当您获得一个Company
实例时,您都应该能够将自己所需的字段作为array
处理:
ACoolController.php
// get your instance
$company = App\Company::find(1);
// return it to a view
return view('path.to.view')->with('company', $company);
然后在您看来:
路径/至/view.blade.php
@foreach ($company->open_hours as $open_hour)
<p> This is an {{ $open_hour }} </p>
@endforeach
答案 1 :(得分:0)
使用open_hours列作为json来存储数组值。 Laravel迁移的列类型为-> json('column_name')