Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
tmanager, хорошее решение, но я не знаю ID сотрудников, когда импортирую они уже даны.
AlexeyMezenin, вот это уже ближе, помогите разобраться, пожалуйста. Я честно, только учусь, знаний катастрофично не хватает.
Две модели - Post.php и Item.php. Post.php модель для названия компании; Item.php для импорта сотрудников.
Post.php
public function items()
{
return $this->hasMany('App\Item');
}
}
-------------------------------
Item.php
protected $table = 'items';
public function posts()
{
return $this->belongsTo('App\Post');
}
}
PostController.php
$file = $request->file('file');
$filename = time() . '.' . $file->getClientOriginalExtension();
$location = public_path('files/');
$file->move($location, $filename);
$oldFilename = $post->file;
$post->file = $filename;
$csv = public_path('files/').$filename;
$query = sprintf("LOAD DATA local INFILE '%s' INTO TABLE `items` FIELDS TERMINATED BY ',' ESCAPED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES (
`responseID`, `email`, `department`, `position`, `term_office`,
`term_company`,`education`, `sex`, `age`, `Final_Q1`, `Final_Q2`,
`Final_Q3`, `Final_Q4`, `Final_Q6`, `Final_Q7`, `Final_Q8`, `Final_Q10`,
`D_1`, `Final_Q12`, `Final_Q13`, `Final_Q14`, `Final_Q15`, `Final_Q16`,
`Final_Q17`, `Final_Q18`, `Final_Q19`, `Final_Q20`, `Final_Q21`, `Final_Q22`,
`Final_Q23`, `Final_Q24`, `D_2`, `Final_Q25`, `Final_Q26`, `Final_Q27`,
`Final_Q28`, `Final_Q29`, `Final_Q30`, `Final_Q31`, `D_3`, `Final_Q33`,
`Final_Q34`, `Final_Q35`, `Final_Q36`, `Final_Q37`, `Final_Q38`,
`Final_Q39`, `D_4`, `Final_Q40`, `Final_Q41`, `Final_Q42`, `Final_Q44`,
`Final_Q45`, `Final_Q47`, `D_5`, `Final_Q49`, `Final_Q50`,
`Final_Q51`, `Final_QA52`, `Final_QB52`, `Final_QC52`, `D_6`,
`Final_Q52`, `Final_Q53`, `Final_Q54`, `Final_Q55`, `Final_Q56`,
`Final_Q57`, `D_7`, `Final_Q59`, `Final_Q60`, `Final_Q61`,
`Final_Q62`, `Final_Q63`, `Final_Q64`, `D_8`, `Final_Q65`,
`Final_Q66`, `Final_Q67`, `Final_Q69`, `Final_Q70`, `Final_Q71`,
`Final_Q73`, `Final_Q74`, `Final_Q75`, `D_9`, `Final_Q76`,
`Final_Q77`, `Final_Q78`, `Final_Q80`, `Final_Q81`, `Final_Q82`,
`Final_Q83`, `Final_Q84`, `D_10`, `Final_Q85`, `Final_Q86`,
`Final_Q87`, `Final_Q88`, `Final_Q89`, `Final_Q90`, `Final_Q91`,
`Final_Q92`, `Final_Q93`, `Final_Q94`, `Final_Q95`, `D_11`, `Final_Q96`,
`Final_Q97`, `Final_Q98`, `Final_Q99`, `Final_Q100`, `Final_Q101`,
`Final_Q102`, `Final_Q103`, `D_12`, `TotalEngag`, `TotalEngagBin`, `ex_comp`)",
addslashes($csv));
$post = Post::find($id);
$post->items()->create($request->all());
$post->name = $request->input('name');
$post->category_id = $request->input('category_id');
$post->empl = $request->input('empl');
$post->save();
return DB::connection()->getpdo()->exec($query);
Storage::delete($oldFilename);
Идея была такая: Первым шагом создается профиль компании. Вторым шагом отправляем редактировать этот профиль и там появляется возможность импорта сотрудников. Взять текущий ID компании и проставить его во всех импортируемых сотрудников. Текущий ID мы знаем, т.к. находимся на странице редактирования этой компании. Но вот как закодить это сделать никак не соображу.
Всем добрый день, подкиньте светлые идеи, как решить задачку.
У меня есть две таблицы Компания и Сотрудники. В таблице сотрудников по мимо имени есть колонка company_id, которая через foreign key подключается к таблице компаний.
Теперь вопрос. Как сделать это автоматически, чтобы руками не надо было проставлять?
$file = $request->file('file');
$filename = time() . '.' . $file->getClientOriginalExtension();
$location = public_path('files/');
$file->move($location, $filename);
$oldFilename = $post->file;
$post->file = $filename;
$csv = public_path('files/').$filename;
$query = sprintf("LOAD DATA local INFILE '%s' INTO TABLE `items` FIELDS TERMINATED BY ',' ESCAPED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES (
`responseID`,
`email`,
`department`,
`position`,
`term_office`,
`term_company`,
`education`,
`sex`,
`age`),
addslashes($csv));
$post = Post::find($id);
$post->name = $request->input('name');
$post->company_id = $request->input('company_id'); <---- Проставляю сейчас руками, но хочется сделать автоматически.
$post->empl = $request->input('empl');
$post->save();
return DB::connection()->getpdo()->exec($query);
Storage::delete($oldFilename);
Надеюсь на вашу мудрость, а то уже не знаю как это сделать.
Страницы 1