إيثار شروف

إيثار شروف

مطوّر ويب وتطبيقات

الإعدادات
الوضع الداكن

قائمة الأكواد

42 نتيجة

Eloquent

دوال للتعامل مع الوقت بسهولة في eloquent

دول للتعامل مع الوقت بسهولة في eloquent

$products = Product::whereDate('created_at', '2018-01-31')->get();
$products = Product::whereMonth('created_at', '12')->get();
$products = Product::whereDay('created_at', '31')->get();
$products = Product::whereYear('created_at', date('Y'))->get();
$products = Product::whereTime('created_at', '=', '14:13:58')->get();
21 يناير 2024 3,327 مشاهدة
Model

اذا كان الموديل لا يحتوي على حقول timestamp الإفتراضية

إذا كان الجدول لا يحتوي على حقول  timestamp   الإفتراضية وهي updated_at, created_at يجب إعلام الـ mode   بذلك من خلال  $temestamps=false

class Company extends Model{
    public $timestamps = false;
}
21 يناير 2024 3,247 مشاهدة
Eloquent

التجميع group by بإستخدام الحرف الأول

نستطيع عمل group للبيانات بأي شرط، مثال على عمل group حسب الحرف الأول من الإسم

$users = User::all()->groupBy(function($item) {
    return $item->name[0];
});
21 يناير 2024 3,235 مشاهدة
Model

تغيير أسماء حقول timestamp الإفتراضية في laravel

إذا أردنا تغيير أسماء حقول timestamp الإفتراضية وهي created_at, updated_at إلى أسماء أخرى مثل create_time, update_time ، يجب تحديد ذلك بالموديل

class Role extends Model{
     const CREATED_AT = 'create_time';
     const UPDATED_AT = 'update_time';
 }
21 يناير 2024 3,210 مشاهدة
Model

حقل لا يتم تحديثة أبدا

إذا كان لدينا حقل ولا نريد أن يتم التعديل عليه، نستطيع وضع قيود من خلال Model مع إستخدام Mutator

class User extends Model{
    public function setEmailAttribute($value){
        if ($this->email) {
            return;
        }
        $this->attributes['email'] = $value;
    }
}
21 يناير 2024 3,162 مشاهدة
Migrations

إستخدام migration لإضافة حقل إلى جدول موجود

لإضافة حقل جديد إلى جدول موجود، مثلا إضافة حقل slug إلى جدول articles.

ننشئ migration جديد، ونسيمه addFieldNameToTableName

php artisan make:migration addSlugToPost
public function up()
    {
        Schema::table('posts', function (Blueprint $table) {
            $table->string('slug');
        });
    }
21 يناير 2024 3,110 مشاهدة
Eloquent

زيادة أو نقصان قيمة الحقل بإستخدام دوال increment, decrement

إذا كنت تريد زيادة رقم أو إنقاصه بالإمكان إستخدام  increment, decrement، بالوضع الإفتراضي تتم الزيادة/ النقصان بـ 1، لكن نستطيع أيضا تحديد مقدار الزيادة مثلا 50.

Post::find($post_id)->increment('view_count');
User::find($user_id)->increment('points', 50);
Post::find($post_id)->decrement('view_count');
User::find($user_id)->decrement('points', 50);
21 يناير 2024 3,104 مشاهدة
Blade

إستخدام foreach في لارافيل

إذا كان لدينا @foreach في blade ونريد أن يتم طباعة سطر بعد كل عنصر يتم جلبة من قاعدة البيانات، بالإمكان إستخدام المتغير $loop لتحديد اذا كان العنصر الذي تم جلبه هو العنصر الأول أو الأخير أو حتى ما هو رقم العنصر

@foreach($posts as $post)
    <h2>{{ $post->title }}</h2>
    @if(!$loop->last)
        <hr/>
    @endif
@endforeach

المزيد من خصائص $loop يمكن الإطلاع عليها من هنا.

21 يناير 2024 3,067 مشاهدة
Eloquent

البحث حسب التاريخ في laravel

عند جلب البيانات حسب جدول التاريخ بدلا من إستخدام 

User::orderBy('created_at', 'desc')->get();

نستطيع عمل ذلك بشكل أسرع، ويتم الترتيب بشكل desc

User::latest()->get();

بالوضع الإفتراضي latest تقوم بالترتيب حسب حقل created_at

اذا كنا نريد الترتيب بشكل ascending يمكن إستخدام oldest

User::oldest()->get();

كما نستطيع تغيير جدول البحث الإفتراضي من created_at الى updated_at

$lastUpdatedUser = User::latest('updated_at')->first();
21 يناير 2024 3,010 مشاهدة
Eloquent

إستخدام DB transactions

اذا كنا نتعامل مع علمية إدخال لجدولين، ربما يحصل خطأ أثناء إدخال البيانات للجدول الثاني، بالتالي يجب عمل تراجع عن البيانات المدخلة للجدول الأول، لذلك ينصح بإستخدام Transactions

DB::transaction(function () {
    DB::table('users')->update(['votes' => 1]);
    DB::table('posts')->delete();
});

للمزيد من هنا

21 يناير 2024 2,997 مشاهدة
Model

تغيير حقل البحث الإفتراضي في eloquent find, findOrFail

بالوضع الإفتراضي يتم البحث في لارافيل بإستخدام find, findOrFail في حقل id، لكن اذا كنا نريد تغيير هذا الحقل يجب إن يتم تحديد ذلك في الـ model

model

class Product extends Model{
    protected $primaryKey = 'title';
    //tell Laravel to use title as primary key
}

eloquent

public function search(Request $request){
    $user = Product::findOrFail($request->title);
    return $user;
}
21 يناير 2024 2,964 مشاهدة
DB Raw

إستخدام db raw للقيام بعمليات calculation في query

 

يفضل إستخدام دوال DB Raw مثل whereRaw لعمل عمليات حسابيه مباشرة في جملة sql حيث تظهر النتائج بشكل أسرع، مثال اذا أردنا جلب المستخدمين الذين قامو بالتسجيل والفعالين خلال 30 يوم

User::where('active', 1)
    ->whereRaw('TIMESTAMPDIFF(DAY, created_at, updated_at) > ?', 30)
    ->get();
21 يناير 2024 2,877 مشاهدة