试图在laravel-8中index.blade.php的listView中显示为特定用户注册的某些产品
我可以使用外键作为“用户id”为特定用户注册产品用户具有多个产品一对多关系。 我想显示当我与用户2登录时,它将只显示产品5和7,而不是用户1注册的6。但是我的代码试图在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'
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登录,那么我必须再次更改代码,但必须自动指示tryProduct::where('user\u id',Auth()->id())
。它的工作方式是``$products=Product::where('user_id',auth()->user()->id)->latest()->paginate(20);````谢谢,但是获取当前id不是固定的,你能帮忙吗?auth()->id()
可用于获取经过身份验证的用户id。我对您当前的id有点困惑,您能解释一下吗?您能详细解释一下吗?如果我使用id 1登录,那么我必须再次更改代码,但必须自动指示tryProduct::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你能发布刀片代码吗