İçeriğe geç →

Laravel FrameWork ipuçları

Php frameworklerinden en çok kullanılan ve çok hızlı yazılım geliştirmeye olanak sağlayan Laravel hakkında sizinle bir kaç ipucu paylaşmak istiyorum.Belki biliyorsunuzdur bir göz gezdirmenizde fayda olacaktır.

Unsigned Integer

Migration Senaryolarımızda kolayca foreign key yapmamız gerekiyorsa

$table->integer('test')->unsigned()

bunun yerine aşşağıdaki methodu kullanabilirsiniz.

$table->unsignedInteger('test');

Eloquent Model ‘de OrderBy

Eloquent RelationShip ‘lerde bazen bir sütuna göre listelememiz gerekebiliyor.Aşşağıdaki method ile kolayca yapabilirsiniz.

public function usersByName()
 {
 return $this->hasMany(User::class)->orderBy('name');
 }

Blade Template’de Foreach Döngüsünde ilk ve son iterasyonu $loop değişkeni ile kolayca ulaşabilirsiniz.

@foreach ($users as $user)
 @if ($loop->first)
 bu ilk iterasyon
 @endif
 @if ($loop->last)
 bu son iterasyon
 @endif
@endforeach

Eloquent Model ‘de Yıla,Aya,Tam zamana,Güne şeklinde kolayca kayıtlarımızı çekebilmekteyiz.


User::whereDate('created_at', '2019-01-31')->get();
User::whereMonth('created_at', '11')->get();
User::whereDay('created_at', '21')->get();
User::whereYear('created_at', date('Y'))->get();
User::whereTime('created_at', '=', '12:11:44')->get();

Blade Template’de dosyasının var olup olmadığını kontrol etmek.

if (view()->exists(‘home.page’)) {
}

Eloquent Modellerimizde bazı tablolarımızda created_at ve updated_at sütunlarının olmasını istemezsek.

class User extends Model
{
public $timestamps = false;
}

Migration Senaryolarımızda kullabileceğimiz MacAdress,IpAddress,Geometry Sütunları

$table->geometry('pozisyon');
$table->ipAddress('ziyaretci');
$table->macAddress('cihaz');

Dosyalarda Boyut Kontrolü

'resim' => 'dimensions:max_width=4096,max_height=4096'

Route’da sadece view göstermek

Route::view('hello', 'hello');

Eloquent Modellerde tüm kayıtları çekerken bazen bazı sütunları almak istemeyiz almak istediğimiz sütunları all methodunun içine yazarak istediğimiz sütunları getirebiliriz.

$users = User::all(['id', 'name', 'email']);

Laravel Auth:routes() ‘da bazen bazı değişiklikler yapmak isteriz.Örnek olarak hazır gelen şifre sıfırlamayı iptal etmek istrsek.

Auth::routes([ 'verify' => false]);

Tüm detaylara

/vendor/laravel/framework/src/illuminate/Routing/Router.php dosyasındaki auth methodundan bakabilirsiniz.

Laravel Belogsto Relationshiplerde ilişkili tablonun nesnesi mevcut değilse ve o hatadan if else blokları haricinde daha kolay kaçınmamıza olanak sağlayan withDefault Methodu

public function user()
{
 // $post->user->name eğer böyle bir değer yoksa if else bloksuz direk aşşağıdaki methodla kaçınabiliriz
return $this->belongsTo('App\User')->withDefault();
}

Laravel RelationShip lerde mevcut nesnesnin kaçtane olduğunu spesifik sql sorguları yerine aşşağıdaki gibi yapabilirisiniz.

Model:

public function index()
{
$users = User::withCount(['posts', 'comments'])->get();
return view('users', compact('users'));
}

Blade:

@foreach ($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td class="text-center">{{ $user->posts_count }}</td>
<td class="text-center">{{ $user->comments_count }}</td>
</tr>
@endforeach

Kategori: php

Yorumlar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir