1 2 |
$b = 0; $a = ($b == 0) ? true : false; |
işe yarar kod blokları
1 2 |
$b = 0; $a = ($b == 0) ? true : false; |
users tablosuna git api_token diye bir kolon oluştur. 70-80 karakter sınırı belirle. kolon unique, null olsun.
sonra buna üye kayıt sırasında random 60 karakterli bir string ver.
1 |
Str::random(60) |
sonra sorgu esnasında api_token=xxx diye sorguya ekle olsun bitsin. hepsi bu kadar.
route’da link oluştururken auth:api yazmayı unutmayın.
laravel 6 ile gelen özellikle beraber auth kısmını bootstrap, react vs vs içinde ayrı ayrı kullanmak için ui metodu geldi. başka bişi için de gelmiş olabilir ama benim için auth.
ilk önce ui aktif ediyoruz.
1 |
composer require laravel/ui |
eğer react veya vue kullanacaksak vue ama ben şu an giriş viewleri bootstrap olsun diyorum ve aşağıdaki kodu yazıyorum. hepsi bu kadar.
1 |
php artisan ui bootstrap --auth |
veya
1 |
php artisan ui:auth |
en son bootstrap dosyaları için
1 |
npm install && npm run dev |
ilgili modele gidiyoruz ve casts yoksa kendimiz
1 2 3 |
protected $casts = [ 'created_at' => 'date:d-m-Y h:i:s' ] |
kullanıcılar tablosunda ad ve soyad diye ayrı kolonumuz var. biz bunu otomatik birleştirmek istiyor ve veritabanına dokunmak istemiyorsak modelimize
1 2 3 4 5 |
protected $appends = ['full_name']; public function getFullNameAttribute(){ return $this->ad." ".$this->soyad; } |
eğer ben bunu tüm sorgularda değil sadece kendi belirleyeceğim yerde full name diye bir kolon gelsin derseniz modeldeki protected ile başlayan kısmı siliyoruz ve kullanacağımız controllera gelip
1 |
$data->each->setAppends(['full_name']); |
model içerisine;
1 |
protected $hidden = ['kolonadi']; |
yok ben direk bir controller yaptım onun sonucunda çıkmasın diyorsan
1 |
$data = $data->makeHidden('kolonadi'); |
map fonksiyonu ile gelen verilere istediğimiz isimleri ve değerleri vererek kullanıcıya sunabiliriz.
1 2 3 4 5 6 7 8 |
$urun = Urun::take(10)->get(); $mapped = $urun->map(function($urun){ return [ 'id' => $product['id'], 'isim___' => $product['name'] ] }); return $mapped->all(); |
isterseniz fiyat değeri geliyorsa %18 kdv koyup yayınlarsınız ya da %5 zam korsunuz gibi gibi.
1 2 3 4 5 6 7 8 9 10 11 12 |
$offset = $request->has('offset') ? $request->query('offset') : 0; $limit = $request->has('limit') ? $request->query('limit') : 10; $sorgu = product::query(); if($request->has('q')) $sorgu->where('product_name','like','%'.$request->query('q').'%'); if($request->has('sortby')) $sorgu->orderBy($request->query('sortby'),$request->query('sort','desc')); $data = $sorgu->offset($offset)->limit($limit)->get(); return response($data,200); |
product?q=elma&sortby=id&sort=desc&limit=2
linkini yukarıdaki kod ile çalıştırabiliriz.
1 |
return response(product::paginate(10),200); |
zaten çıktının en altında otomatik diğer sayfalara nasıl gidileceğini yazıyor
1 2 3 4 5 6 7 |
public function destroy(product $product) { $product->delete(); return response([ 'message' => 'Product updated' ],200); } |