Laravelde migrasyon dosyalarınızda timestamp kullanırken default olarak şu anki zamanı vermek isterseniz useCurrent() seçeneğini kullanabilirsiniz
$table->timestamp('service_date')->useCurrent();
Laravel 8 ile artık migrasyon dosyalarımızda tanımladığımız id değerlerini belli bir sayıdan başlatabiliriz. Bunun için startingValue metodunu kullanmamız yeterli:
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id()->startingValue(1000);
...
}
Laravelde sorgumuza, model üzerinde kurduğumuz ilişkileri with ile alabildiğimizi öğrenmiştik. Ama bu ilişkiler üzerinde normal yöntemlerle sıralama işlemi yapamayız.. Bunun için sorgudan sonra bir sıralama işlemi yapmak istersek sortBy metotlarını kullanabiliriz.
Örnek olarak Konu(Topic)...
Laravelde örnek olarak view da bir yazının, yazarının adını göstermeye çalışalım.. Bunun için basitçe şu komutu kullanabiliriz:
{{ $post->author->name }}
Ama eğer yazar silinmişse bu kod hata verir(property of non-object).. Bu hatayı engellemek içinse şu komutu kullanabiliriz..
{{...
Proje geliştirirken bazı durumlarda id yi elle vermek isteriz. Bu tarz durumlarda Eloquent modelimize şu kodu yazarak id nin otomatik artmasını engelleyebiliriz:
class User extends Model {
public $incrementing = false; // id otomatik artmayacak
}
Laravelde bir güncelleme işlemi yaparken updated_at kolunu otomatik olarak o işlemin yapıldığı tarihle damgalanır. Eğer bunu engellemek istiyorsak aşağıdaki gibi bir yöntem izleyebiliriz:
$user = User::find(1);
$user->profile_views_count = 123;
$user->timestamps = false;
$user->save();
Laravel 7 den önce tarih standartı şu şekildeydi : 2019-12-02 20:01:00 . Laravel 7 den sonra yeni format şuna döndü : 2019-12-02T20:01:00.283041Z . Eğer bu formatı özelleştirmek isterseniz modelinizin için $dateFormat adlı bir değişken tanımlayıp, tarih formatı atayabilirsiniz. Örnek:
class...
Laravelde default olarak validasyon hataları bir liste şeklinde döner.. Eğer bu doğrulamaların ilk hatada durmasını istiyorsanız oluşturduğunuz kurala bail komutunu ekleyebilirsiniz:
$request->validate([
'title' => 'bail|required|unique:posts|max:255',
'body' => 'required',
]);
Laravelde sitenizi hızlıca bakım moduna almak için şu komutu kullanabilirsiniz:
php artisan down
İnsanlar siteye girdiğinde 503 koduyla birlikte sitenin bakımda olduğunu görür.. Ek olarak bu komuta şu parametreleri de ekleyebilirsiniz:
--message => İnsanların görmesini istediğiniz mesaj...
Eğer laravelde bir kolunun sadece 1 kez atanıp, sonra güncellenmemesini istiyorsanız set metoduna ekleyeceğiniz ufak bir kodla bunu sağlayabilirsiniz:
class User extends Model
{
public function setEmailAttribute($value)
{
if ($this->email)
{
return;
}...
Laravelde istekleri kontrol ederken dönen mesajların içeriğini değiştirmek istiyorsanız, FormRequest sınıfınıza messages() diye bir alan daha açıp, ilgili alana istediğiniz bir değer yazmanız yeterli olacaktır. Örnek:
class StoreUserRequest extends FormRequest
{
public function rules()...
Laravelde Blade içerisinde @can komutu komutunu kullanarak yetki kontrolü yapabilirsiniz. @canany ile de birden fazla yetki kontrolü yapabilirsiniz:
@canany(['update', 'view', 'delete'], $post)
// Kullanıcının bu yazıyı silme, görüntüleme ve güncelleme yetkisi var
@elsecanany(['create']...
Eğer laravelde Eloquent ilişkilerini dinamik olarak oluşturuyorsanız ve bu ilişkinin olup olmamasına göre işlem yapacaksanız method_exists() fonksiyonunu kullanabilirsiniz:
$user = User::first();
if (method_exists($user, 'roles'))
{
// $user->roles()-> metodunu kullanabilirsiniz
}