Postingan lainnya
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.
8 Jawaban:
dikasih kondisi aja mas, if(Auth::check()) redirect('');
Dimananya mas?
Di controller atau di bladenya?
di controllernya juga bisa mas ditaruh difungsinya buat route itu hehe
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');
});
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.