Для отношений друг к другу или любых отношений вам необходимо иметь правильную структуру базы данных. Например, в вашем случае у вас есть два стола products
и users
Позволяет просто создать миграции для таблиц products
и users
миграции
Schema::create('users',function(Blueprint $table){
$table->increaments('id');
$table->string('name');
//and so on ...
});
Так в основном для идентификации пользователей вы получили users.id
колонка.
Schema::create('products',function(Blueprint $table){
$table->increaments('id');
$table->string('product_name');
$table->integer('user_id')->unsigned();
//and so on ...
$table->foreign('user_id')
->references('users')
->on('id')
->onDelete('cascade');
});
Теперь у вас есть users
стол и ваш products
стол. И между вашими таблицами существует связь между пользователями, которые могут иметь продукты.
Модели
class User extends Model {
public function products(){
return $this->hasMany('\App\Product'); //Product Model Name
}
}
Теперь, если вы хотите получить доступ к products
который принадлежит users
вам придется сделать это в вашем контроллере.
$user = Users::find(1); //lets say for test we just took firs user
return $user->products()->get();
Это даст вам подробную информацию о пользователе и вместе с продуктами, которые связаны с этим конкретным пользователем.
ПРИМЕЧАНИЕ: В вашем случае у вас нет user_id, связанного с вашими деталями продукта, в этом случае он не будет работать, так как должны быть какие-то отношения.
для хранения данных в базу данных
public function create()
{
return view('products.create');
}
public function store(Request $request)
{
$inputs = $request->all();
$product = Product::Create($inputs);
return redirect()->action('Pro[email protected]');
}
Теперь вы массу присваивающих значение в базу данных, так $request->all()
должен user_id
от зарегистрированного пользователя.
Итак, создайте скрытое поле в области формы products.create
.
<form action="someaction" method="POST">
<input type="hidden" name="user_id" value="{{Auth::user()->id}}"/>
<input type="text" name="product_name" />
</form>
Теперь ваш метод $request->all()
будет содержать ключ user_id
и его форму стоимости авторизованного пользователя.
Auth::user()
содержит информацию о зарегистрированных пользователях;
Кроме того, в вашем контроллере вы можете сделать, как это тоже ..
public function store(Request $request)
{
$request->user_id = Auth::user()->id; //assigning user_id value to the current logged in user's id (this has to be before adding the request to the inputs variable so when you execute ::Create($inputs) it will be there)
$inputs = $request->all();
$product = Product::Create($inputs);
return redirect()->action('[email protected]');
}
Надеется, что это поможет. :)
Я объясню все. позвольте мне написать свой ответ. – imrealashu
ok man thank you – provolkata