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
Yorumlar