# 1 (Простой)
Нет необходимости создавать новый запрос для поиска $groupid
.Вы можете получить $groupid
вот так:
$groups_create = new Group();
$groups_create->group_name = $request->input('groupname');
$groups_create->group_admin = Auth::id();
$groups_create->save();
$groups_create_subscription = new GroupSubscription();
$groups_create_subscription->idgroups = $group_create->idgroups;
$groups_create_subscription->subscriber = Auth::id();
# 2 (транзакции с базой данных)
DB::beginTransaction();
try {
$groups_create = new Group();
$groups_create->group_name = $request->input('groupname');
$groups_create->group_admin = Auth::id();
$groups_create->save();
$groups_create_subscription = new GroupSubscription();
$groups_create_subscription->idgroups = $group_create->idgroups;
$groups_create_subscription->subscriber = Auth::id();
DB::commit();
return redirect('home')->with('success', 'Ihre Gruppe wurde angelegt!');
} catch (\Exception $e) {
DB::rollBack();
return redirect('home')->with('danger', 'Group not saved!');
}
# 3 (определение отношений)
Eloquent отношения определяются как методы в ваших классах модели Eloquent.Поскольку, как и сами модели Eloquent, отношения также служат мощными построителями запросов, определение отношений как методов обеспечивает мощные возможности цепочки методов и запросов
Групповая модель
class Group extends Model
{
public function subscriptions()
{
return $this->belongsTo('App\GroupSubscription', 'idgroups', 'idgroups');
}
}
Модель групповой подписки
class GroupSubscription extends Model
{
public function group()
{
return $this->hasOne('App\Group', 'idgroups', 'idgroups');
}
}
Контроллер
$groups_create = new Group();
$groups_create->group_name = $request->input('groupname');
$groups_create->group_admin = Auth::id();
$groups_create->save();
$groups_create->subscriptions()->create([
'subscriber' => Auth::id(),
]);
// It will automaticaly set idgroups
# 4 (Соглашения об именах)
Следовать стандартам PSR .Кроме того, следуйте соглашениям об именах , принятым сообществом Laravel.