0% found this document useful (0 votes)
36 views9 pages

Alur Laravel

The document provides steps to set up Laravel with additional features including roles-based authentication, datatables, QR codes, import/export, and chat. It involves installing packages, publishing configurations, generating models and controllers, and configuring authentication to restrict access based on user roles.

Uploaded by

khrlnmmm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views9 pages

Alur Laravel

The document provides steps to set up Laravel with additional features including roles-based authentication, datatables, QR codes, import/export, and chat. It involves installing packages, publishing configurations, generating models and controllers, and configuring authentication to restrict access based on user roles.

Uploaded by

khrlnmmm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Alur

1. composer create-project --prefer-dist laravel/laravel blog "6.*"


2. php artisan storage:link
3. composer require laravel/ui "^1.0" --dev
4. php artisan ui vue --auth
5. npm install
6. npm run dev
7. buat middleware : php artisan make:middleware CekRole

$roles = $this->CekRoute($request->route());

$req_cek=$request->user();
//dd($req_cek);
if ($req_cek!=null) {
if( $request->user()->hasRole($roles) || !$roles)
{
return $next($request);
}
}

return redirect('/login')->with('gagal', 'Silahkan login kembali');


}
private function CekRoute($route)
{
$actions = $route->getAction();
return isset($actions['roles']) ? $actions['roles'] : null;
}

8. daftarkan middleware ke App/http/karnel.php : 'roles' => \App\Http\Middleware\


CekRole::class,
9. Edit middleware yang kita buat tadi yaitu CekRole
10. Setelah diganti, lakukan perintah : php artisan make:model Role –m

$table->increments('id');

$table->string('name');
$table->string('description');
$table->timestamps();
11. Atur model role

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;

class Role extends Model


{
//
protected $table = 'roles';
protected $fillable = [];
}

12. Atur Model USER

<?php

namespace App;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Hash;

class User extends Authenticatable


{
use Notifiable;

/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'username',
'password',
'role_id',
'status',
'detail_id',
'pic',
];

/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];

/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function role()
{
return $this->belongsTo('App\Role','role_id');
}

public function hasRole($roles)


{
$this->have_role = $this->getUserRole();

if(is_array($roles)){
foreach($roles as $need_role){
if($this->cekUserRole($need_role)) {
return true;
}
}
} else{
return $this->cekUserRole($roles);
}
return false;
}
private function getUserRole()
{
return $this->role()->getResults();
}

private function cekUserRole($role)


{
return (strtolower($role)==strtolower($this->have_role->name)) ? true :
false;
}
public function setPasswordAttribute($pass){
$this->attributes['password'] = Hash::make($pass);

}
public function data_tes()//menampilkan user dengan data tes yang diikuti
{
return $this->hasMany('App\peserta_tes');
}
}

13. Buat LoginController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
Use Auth;
use Illuminate\Support\Facades\Hash;
class LoginController extends Controller
{
public function masuk(Request $request)
{

// request()->validate([
// 'g-recaptcha-response' => 'required|captcha',
// ]);

$request->validate([
'username'=>['required'],
'password'=>['required']
]);
$username=$request->get('username');
$password=$request->get('password');
$user_cek=User::where('username','=',$username)->count();
if ($user_cek==0) {
return redirect('/login')->with('gagal', 'username Anda Tidak Terdaf
tar');
}else{
$user=User::where('username','=',$username)->first();
$p_asli=$password;
$p_hash=$user->password;
//dd(Hash::check($p_asli, $p_hash));
$cek=Hash::check($p_asli, $p_hash);
if ($cek) {
Auth::guard('web')->loginUsingId($user->id);
//dd($role->role);
if ($user->role_id==1) {
return redirect('/admin')->with('success', 'Berhasil M
asuk');
}else if ($user->role_id==2) {
return redirect('/siswa')->with('success', 'Berhasil Mas
uk');
}else if ($user->role_id==3) {
return redirect('/pendaftar')->with('success', 'Berhasil
Masuk');
}else if ($user->role_id==4) {
return redirect('/guru')->with('success', 'Berhasil Masu
k');
}else if ($user->role_id==5) {
return redirect('/sarpras')->with('success', 'Berhasil M
asuk');
}else if ($user->role_id==6) {
return redirect('/perpustakaan')->with('success', 'Berha
sil Masuk');
}else if ($user->role_id==7) {
return redirect('/bendahara')->with('success', 'Berhasil
Masuk');
}else{
return redirect('/login')->with('gagal', 'Anda Buka Siap
a Siapa!');
}
}else{
return redirect('/login')->with('gagal', 'Password Anda Sala
h');
}
}
}
public function keluar()
{
if (Auth::guard('web')->check()) {
# code...
Auth::guard('web','roles')->logout();
return redirect('/login');
}else{
return redirect('/login');
}
}
}
14. Buat controller setiap user

INSTAL DATA TABLE:

1. composer require yajra/laravel-datatables-oracle


2. Add Datatables Service Provider and Facade on config/app.php.

#config/app.php

'providers' => [

...

Yajra\Datatables\DatatablesServiceProvider::class,

'aliases' => [

...

'Datatables' => Yajra\Datatables\Facades\Datatables::class,

Next, enter the following command to publish the config file.

php artisan vendor:publish --provider="Yajra\DataTables\


DataTablesServiceProvider"

The above command will publish configuration file under config/datatables.php

INSTAL QR

1. composer require simplesoftwareio/simple-qrcode

2. Add Datatables Service Provider and Facade on config/app.php.

'providers' => [

....

SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class,

],
'aliases' => [

....

'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class,

],

Penggnaan di route

<?php

Route::get('qr-code-g', function () {

\QrCode::size(500)

->format('png')

->generate('ItSolutionStuff.com',
public_path('images/qrcode.png'));

return view('qrCode');

});

Penggunaan di Blade

<!DOCTYPE html>

<html>

<head>

<title></title>

</head>
<body>

<div class="visible-print text-center">

<h1>Laravel 5.7 - QR Code Generator Example</h1>

{!! QrCode::size(250)->generate('ItSolutionStuff.com'); !!}

<p>example by ItSolutionStuf.com.</p>

</div>

</body>

</html>

Instal Import Export Excel

1. composer require maatwebsite/excel


2. Add Datatables Service Provider and Facade on config/app.php.

'providers' => [

....

Maatwebsite\Excel\ExcelServiceProvider::class,

],
'aliases' => [

....

'Excel' => Maatwebsite\Excel\Facades\Excel::class,

],

Query import

php artisan make:import UsersImport --model=User

Query Import

php artisan make:export UsersExport --model=User

Dokumentasi : https://morioh.com/p/b372edbd4284

Instalasi chat

1. composer require emotality/tawk-laravel

'providers' => [
...,
Emotality\TawkTo\TawkToServiceProvider::class,
];

...

'aliases' => [
...,
'TawkTo' => Emotality\TawkTo\Facades\TawkTo::class,
];

Jalankan :

php artisan vendor:publish --provider="Emotality\TawkTo\TawkToServiceProvider"

Masukan API Key Ke .ENV

TAWKTO_API_KEY=54f52bfdf7bcaa72719c6b7

git config credential.helper store


git config --global --unset credential.helper

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy