У меня есть две таблицы: таблица пользователей и таблица посещаемости. Вот что я хочу сделать:
При добавлении пользователя в таблицу «Пользователь» таблица посещаемости также будет обновлена (идентификатор пользователя таблицы пользователя будет добавлен в таблицу посещаемости в качестве внешнего ключа), первичным ключом моей таблицы «Пользователь» является «Автоинкремент», поэтому я я не могу вставить его вручную в таблицу посещаемости, что мне делать? Есть ли какой-нибудь чит в laravel, который может сделать это легко?
Вот мой контроллер для регистрации
public function register()
{
$myemployee=Employee::all();
return View::make('registration',compact('myemployee'));
}
public function registerEmp()
{
$input = Input::all();$command = new Employee;
$command->firstname=$input['firstname'];
$command->lastname=$input['lastname'];
$command->position=$input['position'];
$command->save();
return Redirect::action('EmployeesController@register');}
Вот моя миграция
public function up()
{
Schema::create('employees',function($table)
{
$table->increments('id');
$table->text('firstname');
$table->text('lastname');
$table->text('position');
$table->timestamps();
});
public function up()
{
Schema::create('attendances', function(Blueprint $table)
{
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('employees');
$table->timestamp('intime');
$table->timestamp('offtime');
});
}
Файл Employee.php
<?php
class Employee extends Eloquent
{
}?>
Вы можете получить последний вставленный идентификатор в таблице пользователей, назначив значение переменной User :: create (), которое является статическим Illuminate \ Database \ Eloquent \ Model, переменной, а затем используйте эту переменную для вставки user_id в таблицу посещений. ,
Вот пример:
public function registerEmp() {
$input = Input::all();
// Create an employee.
$employee = Employee::create($input);
// Create an attendance entry as well.
Attendance::create([
'user_id'=>$employee->id,
// other columns...
]);
return Redirect::action('EmployeesController@register');}
Других решений пока нет …