Senin, 07 Desember 2020

ngrok

 Download ngrok di sini

ekstrak ngrok.zip

./ngrok authtoken 1lMUILIPXIg1YTdiUJPoCh1xfpU_5eiwWw1uGatsmGcpjdsRm
./ngrok help
./ngrok http 8000
 

Laravel 8 Jwt-Auth

  • laravel new jwt
  • cd jwt
  • composer require tymon/jwt-auth
  • php artisan vendor:publish
  • pilih yang = Tymon\JWTAuth\Providers\LaravelServiceProvider
  • php artisan jwt:secret
  •  
  • edit file app/models/user.php
  • <?php

    namespace App\Models;

    use Illuminate\Contracts\Auth\MustVerifyEmail;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Notifications\Notifiable;

    class User extends Authenticatable
    {
    use HasFactory, Notifiable;

    protected $fillable = [
    'name',
    'email',
    'password',
    ];

    protected $hidden = [
    'password',
    'remember_token',
    ];

    protected $casts = [
    'email_verified_at' => 'datetime',
    ];
    }


     menjadi
  • <?php

    namespace App\Models;

    use Illuminate\Contracts\Auth\MustVerifyEmail;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Notifications\Notifiable;

    use Tymon\JWTAuth\Contracts\JWTSubject;
    class User extends Authenticatable implements JWTSubject
    {
    use HasFactory, Notifiable;

    protected $fillable = [
    'name',
    'email',
    'password',
    ];

    protected $hidden = [
    'password',
    'remember_token',
    ];

    protected $casts = [
    'email_verified_at' => 'datetime',
    ];

    public function getJWTIdentifier()
    {
    return $this->getKey();
    }

    public function getJWTCustomClaims()
    {
    return [];
    }
    }


     
  • php artisan make:controller  Api/Auth/LoginController -i
  •  ubah file app/Http/Controllers/Api/Auth/LoginController.php
  • <?php

    namespace App\Http\Controllers\Auth;

    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;

    class LoginController extends Controller
    {
    /**
    * Handle the incoming request.
    *
    * @param \Illuminate\Http\Request $request
    * @return \Illuminate\Http\Response
    */
    public function __invoke(Request $request)
    {
    //
    }
    }


     menjadi
  •  
    <?php

    namespace App\Http\Controllers\Auth;

    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;

    class LoginController extends Controller
    {
    public function __invoke(Request $request)
    {
    $request->validate([
    'email' => 'required',
    'password' => 'required'
    ]);
    $credentials = request(['email', 'password']);
    if (!$token = auth('api')->attempt($credentials)) {
    return response()->json([
    'status' => '0',
    'data' => 'login',
    'result' => [
    'message' => 'Phone atau Password Salah',
    ]
    ], 401);
    }
    $data = [
    'status' => '1',
    'data' => 'login',
    'result' => [
    'token' => $token
    ]
    ];
    return response()->json($data,200);
    }
    }


 

tambah route di api.php


Route::post('login','Api/Auth/LoginController');

 mengedit app/config/auth.php

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],

'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],

 menjadi

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],

'api' => [
'driver' => 'jwt',
'provider' => 'users',
'hash' => false,
],
],

cek postman

localhost:8000/api/Login

localhost:8000/api/users

 

Selasa, 01 Desember 2020

DATA TABLES YAJRA

 https://fahmidasclassroom.com/laravel-7-crud-using-datatables/


1. Install yajra datatables

$ composer require yajra/laravel-datatables-oracle:"~9.0"

2. Daftarkan provider dan facade pada file "config/app.php"

'providers'    =>    [
 ....,
 Yajra\DataTables\DataTablesServiceProvider::class,
]
'aliases'        =>    [
'DataTables'    =>    Yajra\DataTables\Facades\DataTables::class,
]

3. Publish Vendor

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

4. Buat Model & Migration

$ php artisan make:model Product -m 

 edit file "app\database\migrations\2020_12_24_204248_create_banners_table.php"

    Schema::create('banners', function (Blueprint $table) {
        $table->id();
       //addcode
        $table->string('title');
        $table->text('img');
        $table->boolean('status');
        //encode
        $table->timestamps();
    });

edit file "app\Models\Product.php

    <?php
    namespace App\Models;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;

    class Banner extends Model
    {
    use HasFactory;
    protected $fillable = [
    'title',
    'img',
    'status'
    ];
    }

4. Buat Controller

$ php artisan make:controller UserController -r 

5. Buka UserController di folder "app/Http/Controllers" edit code menjadi seperti di bawah.

    

    <?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    //addcode
    use App\Models\User;
    use DataTables;
    use Redirect,Response;
    //endcode
    class UserController extends Controller
    {
    public function index()
    {
            //addcode
if ($request->ajax()) {
$data = User::latest()->get();
return Datatables::of($data)
->addIndexColumn()
->addColumn('action', function($row){
$action =
            '<a class="btn btn-info" id="show-user" data-toggle="modal" data-id='.$row->id.'>Show</a>
<a class="btn btn-success" id="edit-user" data-toggle="modal" data-id='.$row->id.'>Edit </a>
<meta name="csrf-token" content="{{ csrf_token() }}">
<a id="delete-user" data-id='.$row->id.' class="btn btn-danger delete-user">Delete</a>';
return $action;
})
->rawColumns(['action'])
->make(true);
}
return view('users');
            //endcode  
    }

    public function create()
    {
            //addcode
     return view('menu.banner.create');
            //endcode
    }

     public function store(Request $request)
    {
    //addcode
    $request->validate([
    'title' => 'required',
    'img' => 'required'
    ]);
            $imgName = $request->title.time()."_".$request->file('img')->GetClientOriginalName();
Banner::create([
    'img' => $imgName,
    'title' => $request->title,
    'status' => $request->status
    ]);
    $msg = 'Data Berhasil Di Tambahkan';
    return redirect()->route('banner.index')->with('success',$msg);
    }


public function show($id)
{
//
}

public function edit($id)
{
//
}

public function update(Request $request, $id)
{
//
}

public function destroy($id)
{
//
}
}

 

Jumat, 27 November 2020

Function PHP Yang Bermanfaat

1. Mengurutkan nilay array secara terbalik

array_reverse()

2. Mengambil angka terbesar

max()

3. Mengambil angka terkecil

min()

4.Menghitung Jumlah karakter

count()

5. Mengecek apakah suatu variable sudah terisi

empty()

6. Mengecek suatu variable sudah ada atau belum

isset()

7. Mengacak urutan array

suffle()

8. Mengambil array berdasarkan limit

array_slice()

9. Mengambil satu data secara random

array_rand()

Fungsi is_array()

Fungsi ini digunakan untuk memerikasa apakah apakah data yang dikirim bertipe array.

Fungsi is_int()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan berupa bilangan bulat.

Fungsi is_float()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan merupakan bilangan pecahan.

Fungsi is_bool()

Fungsi ini digunakan untuk memerikasa apakah tipy data nilai yang dimasukan berupa boolean.

Fungsi is_null()

Fungsi ini digunakan untuk memerikasa apakah suatu data yang dimasukan adalah null.

 

 

=================================================

Fungsi Validasi

Fungsi empty()

Fungsi Ini digunakan untuk memeriksa apakah suatu variable sudah terisi atau belum. Varible akan bernilai true bila kosong dan true bila kosong.

Fungsi isset()

Fungsi ini digunakan untuk memerikasa apakah suatu variable sudah ada/sudah terbentuk atau belum.

Fungsi unset()

Fungsi ini digunakan untuk menghilangkan variable yang sudah ditentukan.

Pemeriksaan Variable

Fungsi is_array()

Fungsi ini digunakan untuk memerikasa apakah apakah data yang dikirim bertipe array.

Fungsi is_int()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan berupa bilangan bulat.

Fungsi is_float()

Fungsi ini digunakan untuk memerikasa apakah nilai yang dimasukan merupakan bilangan pecahan.

Fungsi is_bool()

Fungsi ini digunakan untuk memerikasa apakah tipy data nilai yang dimasukan berupa boolean.

Fungsi is_null()

Fungsi ini digunakan untuk memerikasa apakah suatu data yang dimasukan adalah null.

Redirect atau Pengalihan Halaman

Fungsi header()

Fungsi ini dingunakan untuk mengalihkan ke halaman yang dituju. Format penulisannya adalah sebagi berikut:

Fungsi dalam upload file

Fungsi $_FILES

$_FILES[’fileupload’][’name’] – Mengambil Nama file

$_FILES[’fileupload’][’size’] – Mengambil Ukuran file

$_FILES[’fileupload’][’type’] – Mengambil Type file

$_FILES[’fileupload’][’tmp_name’] – Mengambil nama file dari tempat penyimpanan sementara

$_FILES[’fileupload’][’error’] -Mengetahui kesalahan saat upload file

Fungsi-fungsi diatas dapat digunakan saat mengupload file ke server untuk mengambil nilai nilai yang dibutuhkan.

Fungsi chmod()

Fungsi ini untuk mengubah mode pada file yang diupload. Format penulisan sebagai berikut:

Fungsi untuk Modifikasi String

Fungsi trim()

Fungsi ini untuk menghilangkan atau memotong spasi kosong pada bagian awal dan akhir dari string. Selain trim() ada juga ltrim() dan rtrim(). Fungsi ltrim() unutk menghilangkan spasi sebelah kiri dan rtrim() unutk menghilangkan spasi sebelah kanan.

Fungsi substr()

Fungsi ini untuk mengambil sebagian data dari string dimulai dari awal yang ditunjukan oleh argument ke dua dan jumlah string yang ditunjukan oleh argumen ke tiga. Format dasar fungsi ini adalah substr($string,$mulai,$jumlah).

Fungsi strstr()

Fungsi ini untuk menampilkan karakter yang dimulai dari karakter yang ditemukan pada string sampai pada runtutan yang dicari.

Fungsi str_replace()

Fungsi ini untuk menggantikan suatu string tertentu dengan string lainnya. Format penulisnnya adalah str_replace($cari, $ganti,$string).

Fungsi explode()

Fungsi ini untuk memisahkan teks berdasarkan kriteria tertentu. Format Penulisannya explode($pemisah, $string).

Fungsi implode()

Fungsi ini untuk menggabungkan isi dalam array menjadi satu string dan dipisahkan menggunakan katakter tertentu. Format Penulisannya implode($pemisah, $array).

Fungsi split()

Fungsi ini untuk memisahkan array ataupun text menggunakan batasan argumen eksprsi. Format Penulisannya split("[/.-]", $string). Contoh :

Fungsi strlen()

Fungsi ini untuk menghitung jumlah karakter pada suatu string.

Fungsi count()

Fungsi ini untuk menghitung jumlah data dalam array.

Fungsi sizeof()

Fungsi ini untuk fungsinya sama dengan fungsi count().

Fungsi strtolower()

Fungsi ini untuk mengubah seluruh string menjadi huruf kecil/lower case.

Fungsi strtoupper()

Fungsi ini untuk mengubah string menjadi huruf kapital semua / upper case.

Fungsi ucfirst()

Fungsi ini untuk mengubah huruf bertama kalimat menjadi kapital / upper case.

Fungsi ucwords()

Fungsi ini untuk mengubah huruf bertama katat menjadi kapital / upper case.

Fungsi Pengatur String

Fungsi get_magic_quota_gpc()

Fungsi ini untuk memeriksa apakah magic_quota_gpc() sudah aktif atau belum, sedangkan fungsi magic_quota_gpc() sendiri memiliki fungsi untuk mengatur penggunaan tanda ’ dan ” agar tidak terjadi kesalahan saat memasukan kedalam data base.

Fungsi addslashes()

Fungsi ini untuk menambahkan slash “/”  pada setiap text yang menggunakan tanda kutip.

Fungsi stripslashes()

Fungsi ini untuk menghilangkan slash “/”  pada setiap text yang menggunakan tanda kutip.

Fungsi htmlentities()

Fungsi ini untuk menampilkan data sesuai dengan yang dimasukan, biasa di gunkan pada form edit/update data.

Fungsi strip_tags()

Fungsi ini untuk menghapus seluruh tag html yang ada dalam string.

 

 

 

 

Laravel Cara Membuat Helper Function Global

1. Buat file app/Helpers/Global.php

2. Buka file composer.json

3. Cari psr-4

Tambahkan path file globalnya

"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},

Menjadi

"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
"files": [
"app/Helpers/Global.php"
]
},

4. Ketikan perintah

$ composer dump-autoload



Laravel Middleware Roles

$ php artisan make:model roles -m

Ubah Kode

public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}

Menjadi

public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->id();
$table->integer('user_id');
$table->string('role')->default('user');
$table->timestamps();
});
}

$ php artisan migrate

app/Models/Role.php

Ubah Kode

class Role extends Model
{
use HasFactory;
}

 Menjadi

class Role extends Model
{
use HasFactory;
protected $fillable =['user_id'];
}

 
app/Models/User.php

public function role(){
return $this->hasOne(Role::class);
}

app/Http/Controllers/Auth/RegisterController.php

 Ubah Kode

protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}

 Menjadi

protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
\App\Models\Role::create(['user_id'=>$user->id]);
return $user;
}

$ php artisan make:middleware CheckRole

Ubah kode

public function handle(Request $request, Closure $next)
{
return $next($request);
}

Menjadi

public function handle(Request $request, Closure $next,...$roles)
{
if(in_array($request->user()->role->role,$roles)){
return $next($request);
}
return \redirect('/');
}

Tambahkan Kode di bawah ke helper global

use Jenssegers\Agent\Agent;
$agent = new Agent();
function CheckRole($role){
if($role == "admin"){
return auth()->user()->role->role == $role;
}else{
return auth()->user()->role->role == $role;
}
}
 

dasar penggunakan

@if(CheckRole("admin"))
    <a href="{{route('#')}}">Dashboard</a>
@endif

Laravel Detect Mobile

$ composer require jenssegers/agent 


Tambahkan Provider ke config/app.php:
Jenssegers\Agent\AgentServiceProvider::class,


Tambahkan Alias ke config/app.php:
'Agent' => Jenssegers\Agent\Facades\Agent::class,

use Jenssegers\Agent\Agent;

$agent = new Agent();
 
$agent->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2');
$agent->setHttpHeaders($headers);

All of the original Mobile Detect methods are still available, check out some original examples at https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples

Is?

Check for a certain property in the user agent.

$agent->is('Windows');
$agent->is('Firefox');
$agent->is('iPhone');
$agent->is('OS X');

Magic is-method

Magic method that does the same as the previous is() method:

$agent->isAndroidOS();
$agent->isNexus();
$agent->isSafari();

Mobile detection

Check for mobile device:

$agent->isMobile();
$agent->isTablet();

Match user agent

Search the user agent with a regular expression:

$agent->match('regexp');

Additional Functionality

Accept languages

Get the browser's accept languages. Example:

$languages = $agent->languages();
// ['nl-nl', 'nl', 'en-us', 'en']

Device name

Get the device name, if mobile. (iPhone, Nexus, AsusTablet, ...)

$device = $agent->device();

Operating system name

Get the operating system. (Ubuntu, Windows, OS X, ...)

$platform = $agent->platform();

Browser name

Get the browser name. (Chrome, IE, Safari, Firefox, ...)

$browser = $agent->browser();

Desktop detection

Check if the user is using a desktop device.

$agent->isDesktop();

This checks if a user is not a mobile device, tablet or robot.

Phone detection

Check if the user is using a phone device.

$agent->isPhone();

Robot detection

Check if the user is a robot. This uses jaybizzle/crawler-detect to do the actual robot detection.

$agent->isRobot();

Robot name

Get the robot name.

$robot = $agent->robot();

Browser/platform version

MobileDetect recently added a version method that can get the version number for components. To get the browser or platform version you can use:

$browser = $agent->browser();
$version = $agent->version($browser);

$platform = $agent->platform();
$version = $agent->version($platform);
 

Laravel Auth UI/Vue

$ composer create-project laravel/laravel:8.5.5 --prefer-dist blog
$ cd blog
$ composer require laravel/ui 3.1
$ php artisan ui vue --auth
$ npm install && npm run dev
$ php artisan serve

create project flutter with getx

Get CLI adalah alat yang sangat berguna untuk mempercepat pengembangan aplikasi Flutter dengan memanfaatkan arsitektur GetX . Berikut adala...