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);
}

你的问题不清楚你能用模型详细解释一下吗?你可以看看我的编辑到目前为止你都做了些什么?你被困在哪里?