试图在laravel-8中index.blade.php的listView中显示为特定用户注册的某些产品

试图在laravel-8中index.blade.php的listView中显示为特定用户注册的某些产品,laravel,laravel-8,Laravel,Laravel 8,我可以使用外键作为“用户id”为特定用户注册产品用户具有多个产品一对多关系。 我想显示当我与用户2登录时,它将只显示产品5和7,而不是用户1注册的6。但是我的代码 public function index() { $products = Product::latest()->paginate(20); return view('products.index',compact('products')) ->with('i'

我可以使用外键作为“用户id”为特定用户注册产品用户具有多个产品一对多关系。 我想显示当我与用户2登录时,它将只显示产品5和7,而不是用户1注册的6。但是我的代码

 public function index()
    {
        $products = Product::latest()->paginate(20);
         return view('products.index',compact('products'))
         ->with('i', (request()->input('page', 1) - 1) * 5);
    }
在index.blede.php中也显示了产品6。请参见图片 你们可以看到索引有另一个问题,它显示ID5为ID1,ID6为ID2,ID7为ID3,你们能帮我解决吗? 这是我的完整ProductController.php

<?php

namespace App\Http\Controllers;

use App\Models\Product;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Requests\Admin\StoreTagsRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;

class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

     public function indexGetProducts(){
         return User::find(1)->getProducts;
     }

    public function index()
    {
        $products = Product::latest()->paginate(20);
         return view('products.index',compact('products'))
         ->with('i', (request()->input('page', 1) - 1) * 5);
        // $products= Product::where('user_id',auth()->user()->id)->orderby('created_at','desc')->get();

        // return view('products.index',compact('products'))->with('i', (request()->input('page', 5) - 1) * 5);

    }

    function authapi(Request $request)
    {
        $user = User:: where('email', $request->email)->first();
        if(!$user || !Hash::check($request->password, $user->password)){
            return response([
                'message' => ['These credentials do not match our records.']
            ],404);
        }

        $token = $user -> createToken('my-app-token')->plainTextToken;

        $response = [
            'user' => $user,
            'token' => $token
        ];

        return response($response,201);
    }

    function all_app_jsons(){
        return Product::all();
    }

    function search_by_name($name){
        return Product::where('name','like','%'.$name.'%')->get();
    }

    function search_by_id($id){
        return Product::where('id',$id)->get();
    }
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('products.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //$tag = Product::create($request->all());

        //return redirect()->route('admin.tags.index');
        $request->validate([
            'name' => 'required',
            'detail' => 'required',
            'color' => 'required',
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'logo' => 'required|mimes:jpeg,png,jpg,gif,svg|max:1024',
        ]);

          $input = $request->all();
         // $request->validated();
        $input['user_id'] = auth()->user()->id;

        if ($image = $request->file('image')) {
            $destinationPath = 'image/';
            $profileImage = date('YmdHis') . "." . $image->getClientOriginalExtension();
            $image->move($destinationPath, $profileImage);
            $input['image'] = "$profileImage";
        }

        if ($logo = $request->file('logo')) {
            $destinationPath = 'logo/';
            $profileLogo = date('YmdHis') . "." . $logo->getClientOriginalExtension();
            $logo->move($destinationPath, $profileLogo);
            $input['logo'] = "$profileLogo";
        }

        Product::create($input);

        return redirect()->route('products.index')
                        ->with('success','Product created successfully.');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Product $product)
    {
        return view('products.show',compact('product'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function edit(Product $product)
    {
        return view('products.edit',compact('product'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    // public function update(Request $request, Product $product)
    public function update(Request $request, $product_id)
    {
        $user_id =  Auth::user()->id ;

        $request->validate([
            'name' => 'required',
            'detail' => 'required',
            'color' => 'required'
        ]);

        $input = $request->all();

        if ($image = $request->file('image')) {
            $destinationPath = 'image/';
            $profileImage = date('YmdHis') . "." . $image->getClientOriginalExtension();
            $image->move($destinationPath, $profileImage);
            $input['image'] = "$profileImage";
        }else{
            unset($input['image']);
        }

        if ($logo = $request->file('logo')) {
            $destinationPath = 'logo/';
            $profileLogo = date('YmdHis') . "." . $logo->getClientOriginalExtension();
            $logo->move($destinationPath, $profileLogo);
            $input['logo'] = "$profileLogo";
        }else{
            unset($input['logo']);
        }

        $product_id->update($input);

        return redirect()->route('products.index')
                        ->with('success','Product updated successfully');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy(Product $product)
    {
        $product->delete();

        return redirect()->route('products.index')
                        ->with('success','Product deleted successfully');
    }

    // function indextwo(){
    //     //return DB::select("select * from  products");
    //    //DB::table('products')->orderBy('id','desc')->first();
    //    return Product::orderBy('id', 'DESC')->first();
    // }

}

您获取产品时没有设置条件,最新方法基于时间戳而不是ID


您应该添加where子句,如
Product::where('user\u id',2)
。如果你想根据id取货,你可以使用
latest('id')

你取货时没有设置条件,最新的方法是基于时间戳而不是id


您应该添加where子句,如
Product::where('user\u id',2)
。如果您想根据id获取,您可以使用
latest('id')

您没有过滤您的产品查询。如果没有where条件,产品模型将显示所有数据,而不考虑用户id

$products = Product::where('user_id',2)->latest()->paginate(20);

这里的userid可能是
Auth::user()->id
或者可能是像userid这样的东西,可能会在url等中传递。

您没有筛选产品查询。如果没有where条件,产品模型将显示所有数据,而不管用户id如何

$products = Product::where('user_id',2)->latest()->paginate(20);

这里的userid可能是
Auth::user()->id
或者可能是像userid这样的其他东西可能会在url等中传递。

你能更详细地解释一下吗如果我使用id 1登录,那么我必须再次更改代码,但必须自动指示try
Product::where('user\u id',Auth()->id())
。它的工作方式是``$products=Product::where('user_id',auth()->user()->id)->latest()->paginate(20);````谢谢,但是获取当前id不是固定的,你能帮忙吗?
auth()->id()
可用于获取经过身份验证的用户id。我对您当前的id有点困惑,您能解释一下吗?您能详细解释一下吗?如果我使用id 1登录,那么我必须再次更改代码,但必须自动指示try
Product::where('user\u id',auth()->id())
。其工作由`$products=Product::where完成('user_id',auth()->user()->id)->latest()->paginate(20);````谢谢,但是获取当前id不是固定的,你能帮忙吗?
auth()->id()
可用于获取经过身份验证的用户id。我对您当前的id有点困惑,您能解释一下吗?您的代码运行良好,谢谢,但每次都无法更改用户id,它必须是自动的假设如果我使用id I登录,则必须显示我按id 1注册的产品,``$products=Product::where('user\u id',auth()->user()->id)->latest()->paginate(20);```谢谢,但是获取当前id没有被修复。您可以帮助吗?您是否已登录dd(auth()->user())是的,它可以登录它,但我想在index.blade.php中显示当前的产品id,您可以在我的帖子的图片中看到,其中数据库中的产品id是5,它显示1index@AbdullahAlShahed你能发布刀片代码吗?你的代码运行良好,谢谢,但每次都不能更改用户id,它必须是自动的。假设我用id登录,那么它必须是s我通过id 1注册的产品是如何工作的?`$products=Product::where('user_id',auth()->user()->id)->latest()->paginate(20);````谢谢,但是获取当前id不是固定的,你能帮忙吗?你登录dd(auth()->user()了吗是的,它可以登录它,但我想在index.blade.php中显示当前的产品id,您可以在我的帖子的图片中看到,其中数据库中的产品id是5,它显示1index@AbdullahAlShahed你能发布刀片代码吗