Session login di Welcome blade

Saya sudah muter kesana - kemari tapi belum nemu juga.

Baru pakai laravel jadi bingung.

Jadi kasusnya gini :

Saya sudah berhasil daftar dan login di laravel.

Kalau nativekan gini.

session_start();

if (isset($_SESSION['user'])) {
   // bawa kehalaman home
}
<!-- halaman welcome untuk login dan register -->

Nah sedangkan dilaravel ketika berhasil login otomatis dibawa kehome tetapi ketika saya akses.

localhost:8000

Kembali lagi kehalaman welcome :(

Biar kalau udah login dan ketika user akses localhost:8000 langsung otomatis dibawa kehalaman home itu bagaimana ya kawan?

Terimakasih.

avatar wadahkode
@wadahkode

44 Kontribusi 15 Poin

Diperbarui 6 tahun yang lalu

8 Jawaban:

dikasih kondisi aja mas, if(Auth::check()) redirect('');

avatar damarajati
@damarajati

14 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

Dimananya mas?

Di controller atau di bladenya?

avatar wadahkode
@wadahkode

44 Kontribusi 15 Poin

Dipost 6 tahun yang lalu

di controllernya juga bisa mas ditaruh difungsinya buat route itu hehe

avatar damarajati
@damarajati

14 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

Jawaban Terpilih

Mungkin saya kasih sedikit penjelasan mas biar jngn bingung Halaman 'welcome' pada Laravel merupakan halaman public, jd siapapun bisa akses halaman tsb, mau dia sudah register ataupun belum, mau dia dalam session login ataupun tidak, halaman tesebut tetap bisa di buka. Sedangkan halaman 'home' adalah halaman yg hanya bisa di akses jika si user sudah login. Misalkan si user belum login dan coba buka url

 localhost:8000/home

maka user tsb akan di arahkan kehalaman login terlebih dalulu.

Jadi kalau mas ingin halaman 'welcome' dikembalikan kehalaman 'home' jika di akses oleh user yg sudah login, maka yg paling simpel untuk hal tsb adalah edit bagian web.php (routes\web.php), silahkan cari sintax berikut

 Route::get('/', function () {
    return view('welcome');
});

kemudian edit jd seperti ini

 Route::get('/', function () {
    if (Auth::user()) {
        return redirect('/home');
    }
    return view('welcome');
});
avatar Rismal
@Rismal

131 Kontribusi 105 Poin

Dipost 6 tahun yang lalu

Saya coba dulu mas :)

avatar wadahkode
@wadahkode

44 Kontribusi 15 Poin

Dipost 6 tahun yang lalu

Terima kasih mas,

Sudah bisa :)

avatar wadahkode
@wadahkode

44 Kontribusi 15 Poin

Dipost 6 tahun yang lalu

Sama2 mas, selamat belajar :)

avatar Rismal
@Rismal

131 Kontribusi 105 Poin

Dipost 6 tahun yang lalu

Sorry saya reply ya,

Setelah saya coba berkali - kali cara diatas masih banyak kegagalan.

Setelah saya pahami lebih dalam cara ini berhasil :

Ubah WelcomeController.php di App\Http\WelcomeController

use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class WelcomeController extends Controller
{
   public function __construct()
   {
      $this->middleware('guest')->except('logout');
   }

   public function index(Request $request)
   {
      $data = $request->session()->has('guest');
      if ($data) {
         return view('home');
      }
      else {
         return view('welcome');
      }
   }
}

Ubah routes/web.php

Route::get('/','WelcomeController@index');
Auth::routes();
Route::get('/home','HomeController@index')->name('home');

Cara ini berhasil di saya, saya punya halaman Welcome dan halaman login,register dan home sekarang.

Saya menggunakan laravel versi 5.4

Terima kasih sudah berdiskusi.

avatar wadahkode
@wadahkode

44 Kontribusi 15 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban