Код, который вы здесь написали, в порядке, но в методе создания контроллера вы должны захватить магазины без user_id и передать эти магазины в качестве параметра в файле создания представления, чтобы заполнить их в поле выбора (представление, которое вы показали выше ) фрагмент кода метода create () должен выглядеть примерно так:
function create () {
$shops = Shop::where('user_id',NULL)->get();
return view('create', ['shops' => $shops]);
}
в представлении создания добавьте это поле,
<select name="shop_id">
@foreach($shops as $shop)
<option value="{{ $shop->id }}">{{ $shop->name }}</option>
@endforeach
</select>
задайте стиль поля в соответствии с вашими потребностями.
Теперь после отправки формы в методе store () запрос $ будет содержать 'shop_id' со значением, выбранным пользователем, вы можете использовать это значение для сохранения user_id в таблице shop, как показано ниже.
поместите этот код после сохранения пользователя.
$user->save();//this is where you saved the user
//This is the code to save user_id in shop table
//check if user is created successfully
if( $user ) {
Shop::where('id', $request->shop_id)->update(array('user_id' => $user->id));
}
Хотя я не тестировал код полностью с моей стороны, но это в значительной степени вещь и должна работать.