Php 如何仅对用户进行身份验证才能显示另一个表中的数据
我的数据库中有两个名为Php 如何仅对用户进行身份验证才能显示另一个表中的数据,php,laravel,laravel-8,Php,Laravel,Laravel 8,我的数据库中有两个名为user和products的表。我可以通过电子邮件在user表中注册并登录。在我的产品表中,我可以添加一些数据,如产品名称,产品详细信息。假设我使用test@gamil.com当我在index.blade.php页面中看到数据时,我需要添加一个数据页面。如果我再次添加一些数据,它会添加一些数据并显示在我的index.blade.php中,这样我可以在使用登录后看到两个数据test@gamil.com. 现在我从test@gmil.com并在用户表中注册另一个用户,如test
user
和products
的表。我可以通过电子邮件在user
表中注册并登录。在我的产品
表中,我可以添加一些数据,如产品名称
,产品详细信息
。假设我使用test@gamil.com当我在index.blade.php
页面中看到数据时,我需要添加一个数据页面。如果我再次添加一些数据,它会添加一些数据并显示在我的index.blade.php
中,这样我可以在使用登录后看到两个数据test@gamil.com. 现在我从test@gmil.com并在用户表中注册另一个用户,如test2@gmail.com登录后,我可以看到我的产品表中存储的两个数据test@gmail.com. 但我不想看到我使用输入的产品表中的数据test@gmai.com我想为用户2创建一个新的index.blade.php,它是test2@gimai.com如果我为用户2添加一些数据,这些数据将只显示给他,而不是用户1。
这是我的ProductController.php
public function index()
{
$user = Auth::user();
$products = $user->products;
$products = Product::latest()->paginate(1);
return view('products.index',compact('products'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
此代码可以显示用于验证用户身份的最后数据。但我想,如果我用一个id登录并输入5个数据,它将只为他显示这些数据,而不是另一个id。输入数据后,如果我用另一个id登录,这里将不会显示我用以前的id输入的任何数据。从您的问题来看,您似乎想在某个用户下存储某些产品。 这意味着一个用户可以添加多个产品,而一个产品可以有多个用户。。 (多对多关系) 要实现这一点,您需要一个名为
product\u user
的额外表,该表存储user\u id
和product\u id
然后在您的用户模型中:
public function products(){
return $this->belongsToMany(Product::class);
}
您的产品型号:
public function users(){
return $this->belongsToMany(User::class);
}
然后在控制器中,将产品添加到产品表中
添加以下内容:
$user->products()->attach($product);//array..//
然后您可以访问以下数据:
public function index()
{
$user = Auth::user();
$products = $user->products;
$products = Product::latest()->paginate(1);
return view('products.index',compact('products'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
你的问题不清楚你能用模型详细解释一下吗?你可以看看我的编辑到目前为止你都做了些什么?你被困在哪里?