เอา Auth หมายเลขผู้ Laravel

0

คำถาม

ฉันทำ Laravel และโครงการติดตั้งสายลมแพกเกจสำหรับการตรวจสอบสิทธิ์หลายและสร้างปกป้องโทรหาแอดมินเพื่อควบคุมของผู้ใช้ประเมินต้องแดชบอร์ดมันได้ผลดีนี่คือเส้นทาง

Route::get('/dashbord',[AdminController::class, 'Dashbord'])
    ->name('admin.dashbord')
    ->middleware('Admin');

Route::get('/profile/edit',[AdminProfileSettings::class, 'index'])
    ->name('admin.profile.settings')
    ->middleware('Admin');

นี่คือ middleware

public function handle(Request $request, Closure $next)
{
    if(!Auth::guard('admin')->check()) {
        return redirect()->route('login_form')->with('error','please Login First');
    }
    return $next($request);
}

ดรหัสนี้ใช้ได้แต่ปัญหาคือตอนที่ผมปูมบันทึกอยู่ที่แดชบอร์ดและพยายามที่จะไปแอดมิหมายเลขที่แอดมิ.โปรไฟล์.ตั้งค่าเส้นทางมันจะไม่เอาตัวฉันผ่านระบบผู้ดูแดหมายเลขโดยการใช้ AdminProfileSettings controller เหมือนนี้

public function index()
{
    $id=Auth::user()->id;
    $adminData = Admin::find($id);
    return view('admin.admin_profile_settings',compact('adminData'));
}

แต่ตอนที่ฉันพยายามที่จะเข้าถึงมันใน admin.admin_profile_settings มุมมองแสดงมันออกฉันเรื่องนี้เกิดข้อผิดพลาด:

พยายามจะทรัพย์สิน'หมายเลข'ของคนที่ไม่ใช่วัตถุ

แต่ถ้าฉันใช้ $adminData = Admin::find(1); มันเอาบัตรโดยที่ไม่มีปัญหาแต่ตอนที่ฉันพยายาม auth ของผู้ใช้หมายเลขมันแสดงให้ฉันเห็นข้อผิดพลาดและถ้าผมต้ออกอินโดยใช้ค่าปริยายป้องกันข้อผิดพลาดนี้จะไม่แสดงแต่มันได้ id จากผู้ใช้โต๊ะ

authentication breeze laravel
2021-11-23 18:30:07
1

คำตอบที่ดีที่สุด

1

คุณไม่ได้ใช้ auth:admin middleware ดังนั้น Auth facade จะต้องดึงผู้ใช้จากค่าปริยายยามกำหนดไว้ใน the config(ซึ่งก็คือ webเว้นแต่คุณได้เปลี่ยนแปลงมัน).

โดยไม่มีการใช้ auth:admin middleware คุณจะต้องการสำหรับกำหนดการสำหรับซึ่งจะทำให้ใช้งาน

$adminUser = Auth::guard('admin')->user();

ข้อ 1:หากคุณมี $request ตัวแปรคุณยังดึงผู้ใช้จากของ $request กับ $request->user()แทนที่จะติดต่อไปที่ Auth facade. มันเป็นเรื่องสำคัญของเหยื่อตายตัว คน user() วิธีการยังต้องใช้ปกป้อย่างที่เป็นพารามิเตอร์,ถ้าต้องการ

$adminUser = $request->user('admin');

ข้อที่ 2:ห้ user() วิธีการ(Auth และร้อง)จะคืนค่ากลับมาเป็นที่เต็ม hydrated นคุณครูแต่พอกลับมา นั่นคือไม่จำเป็นต้องไปเอาหมายเลขและส่ง-เอาที่คุณครูแต่พอกลับมา

2021-11-23 20:59:44

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่