我有一个模型用户,它与模型概要文件具有一对一的关系。
配置文件表具有两列user_id整数列和“信息” jsonb列。我有一个csv文件,其中包含名称为ID,信息等的用户列表。我想要的是将csv文件中的信息存储到我的用户表和个人资料表中。
我能够在用户表中存储信息。但是无法在配置文件表json列中存储用户的配置文件信息。
这是我如何将数据从控制器传递到excel
public function import(Request $request)
{
Excel::import(new UsersImport,request()->file('file'));
return back();
}
这是UsersImport类代码
class UsersImport implements ToModel
{
public function model(array $row)
{
return new User ([
'student_id' => $row[0],
'name' => $row[1],
'email' => $row[2],
'password' => '123456'
]);
}
}
用户表:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('student_id')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
个人资料表:
Schema::create('profiles', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->jsonb('information')->nullable();
$table->timestamps();
});
答案 0 :(得分:1)
//用User :: Create替换新用户
import scrapy
class LinkSpider(scrapy.Spider):
name = "page"
start_urls = [
'https://www.topart-online.com/de/Blattzweige-Blatt-und-Bluetenzweige/l-KAT282?seg=1'
]
def parse(self, response):
yield{
'ItemSKU': response.xpath('//span[@class="sn_p01_pno"]/text()').getall(),
'title': response.xpath('//div[@class="sn_p01_desc h4 col-12 pl-0 pl-sm-3 pull-left"]/text()').getall(),
'ItemEAN': response.xpath('//div[@class="productean"]/text()').getall(),
'Delivery_Status': response.xpath('//div[@class="availabilitydeliverytime"]/text()').getall()
}
答案 1 :(得分:0)
尝试一下,可能可行
class UsersImport implements ToModel
{
public function model(array $row)
{
$user = new User ([
'student_id' => $row[0],
'name' => $row[1],
'email' => $row[2],
'password' => '123456'
]);
//create a profile for user, I'm assuming that you have model Profile for profiles table
Profile::create([
'user_id' => $user->id,
//and other profile data
]);
return $user;
}
}