เส้นทางการโทร Laravel จากคอนโทรลเลอร์

ฉันกำลังเรียกเส้นทาง getting_started หลังจากเข้าสู่ระบบสำเร็จ:

protected $redirectTo = '/getting_started';

นี่คือรหัสเส้นทาง getting_started ของฉัน:

Route::get('/getting_started','UserController@getting_started');

และรหัสควบคุม:

public function getting_started()
{
    $id= Auth::id();
    $user = DB::table('user_profiles')->where('user_id', '=', $id)->first();

    if($user->dashboard_access == 0)
    {
        DB::table('user_profiles')
            ->where('user_id', $id)
            ->update(['dashboard_access' => 1]);
        return view('user.getting_started');
    }

    return view('user.dashboard');
}

มันทำงานได้อย่างสมบูรณ์และแสดงใน url :

http://localhost:8080/getting_started

ตอนนี้ฉันต้องการจริง ๆ ว่าถ้า user.dashboard view เรียกมันให้แสดงใน url เช่น:

http://localhost:8080/dashboard`

และใน getting_started ดูการแสดง :

http://localhost:8080/getting_started

สามารถเรียกเส้นทางแดชบอร์ดแทน:

  return view('user.dashboard');

เส้นทาง dashobard ของฉันคือ:

Route::get('/dashboard',['middleware' => 'auth', function () {
    return view('user.dashboard');
}]);

person Umair Zahid    schedule 02.03.2016    source แหล่งที่มา


คำตอบ (2)


สิ่งที่ฉันเข้าใจก็คือสิ่งที่คุณกำลังมองหาคือฟังก์ชั่นนี้

return redirect()->route('dashboard');

ฉันเข้าใจคำถามของคุณซึ่งอาจผิดได้ บางทีคุณอาจถามอย่างอื่น

person Yasir Ijaz    schedule 02.03.2016

นั่นเรียกว่า การเปลี่ยนเส้นทาง และโดยเฉพาะคุณต้องการ การส่งคืนการเปลี่ยนเส้นทางไปยังเส้นทางที่มีชื่อ คุณสร้างเส้นทางที่เรียกว่า user.dashboard ดังนั้นคุณสามารถเปลี่ยนเส้นทางไปยังมันได้โดยใช้ redirect()->route(route_name) :

return redirect()->route('user.dashboard');

หวังว่านี่จะช่วยได้

person Zakaria Acharki    schedule 02.03.2016