Laravel'in Bilmediğiniz 10 Anlamlı Özelliği
Laravel zengin özelliklere sahip bir frameworkdür. Ancak mevcut tüm özellikleri resmi belgelerde bulamazsınız. İşte bilmediğiniz bazı özellikler.
1. Get Original Attributes
Bir Eloquent kaydını mutasyona uğrattıktan sonra getOriginal() öğesini çağırarak orijinal nitelikleri elde edebilirsiniz.
$user = App\User::first(); $user->name; //Ali $user->name = "Metin"; //Metin $user->getOriginal('name'); //Ali $user->getOriginal(); //Original $user record
2. Modelin Değişip Değişmediğini Kontrol Edin
Modelin veya verilen özelliğin isDirty() kullanılarak değiştirilip değiştirilmediğini kontrol edin.
$user = App\User::first(); $user->isDirty(); //false $user->name = "Metin"; $user->isDirty(); //true
Belirli bir özelliğin değişip değişmediğini de kontrol edebilirsiniz.
$user->isDirty('name'); //true
$user->isDirty('age'); //false
3. Değiştirilen Özellikleri (Attributes) Alın (getChanges)
getChanges() kullanarak bir modelin değiştirilmiş niteliklerini öğelerini alabilirsiniz.
$user->getChanges() //[ "name" => "Metin", ]
Not: Değişiklikler yalnızca modeli kaydederseniz veya değişiklikleri syncChanges() kullanarak senkronize ederseniz.
4. Özel deleted_at
Sütunu
Varsayılan olarak Laravel, geçici silme işlemlerini delete_at sütununu kullanarak gerçekleştirir. delete_at özelliğini açıkça tanımlayarak bunu değiştirebilirsiniz.
class User extends Model
{
use SoftDeletes;
* The name of the "deleted at" column.
*
* @var string
*/
const DELETED_AT = 'is_deleted';
}
Veya bir erişimci tanımlayarak bu işlemi yapabilirsiniz.
class User extends Model
{
use SoftDeletes;
public function getDeletedAtColumn()
{
return 'is_deleted';
}
}
5. Modelleri ve ilişkileri kaydedin
Push() yöntemini kullanarak bir modeli ve ona karşılık gelen ilişkileri kaydedebilirsiniz.
class User extends Model { public function phone() { return $this->hasOne('App\Phone'); } } $user = User::first(); $user->name = "Ali"; $user->phone->number = '1234567890'; $user->push(); // Bu, DB'deki hem kullanıcı hem de telefon kaydını güncelleyecektir
6. Modeli Yeniden Yükleme
Fresh() kullanarak veritabanından yeni bir model örneğini yeniden yükleyin.
$user = App\User::first(); $user->name; // Ali // kullanıcı kaydı başka bir iş parçacığı tarafından güncellenir. örneğin: 'name' değiştirildi // Metin. $updatedUser = $user->fresh(); $updatedUser->name; // Metin $user->name; // Ali
7. Mevcut Modeli Yeniden Yükleyin
Refresh() işlevini kullanarak mevcut bir modeli veritabanından yeni değerlerle yeniden yükleyebilirsiniz.
$user = App\User::first(); $user->name; // Ali // kullanıcı kaydı başka bir iş parçacığı tarafından güncellenir. örneğin: 'name' değiştirildi // Metin. $user->refresh(); $user->name; // Metin
Not: refresh() aynı zamanda mevcut modelin yüklü ilişkilerini de güncelleyecektir
8. Modellerin Aynı Olup Olmadığını Kontrol Edin
is() işlevini kullanarak iki modelin aynı kimliğe sahip olup olmadığını ve aynı tabloya ait olup olmadığını belirleyin.
$user = App\User::find(1); $sameUser = App\User::find(1); $diffUser = App\User::find(2); $user->is($sameUser); // true $user->is($diffUser); // false
9. Bir Modeli Klonlayın
replicate() işlevini kullanarak bir modeli klonlayabilirsiniz. Modelin bir kopyasını yeni, var olmayan bir örneğe oluşturacaktır.
$user = App\User::find(1); $newUser = $user->replicate(); $newUser->save();
10. Find() Yönteminde Nitelikleri Belirtin
Find() veya findOrFail() yöntemlerini kullanırken, ikinci argüman olarak seçilecek nitelikleri belirleyebilirsiniz.
$user = App\User::find(1, ['name', 'age']); $user = App\User::findOrFail(1, ['name', 'age']);
- Laravel
Tepkini Göster
- 6
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Yorumlar
Sende Yorumunu Ekle