إيثار شروف

إيثار شروف

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

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

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

42 نتيجة

Validation

التحقق من التاريخ بإستخدام كلمات now, yesterday

نستطيع عمل تحقق للوقت من خلال إستخدام before/after ومن ثم تمرير معلمات مثل tomorrow, now, yesterday 

$rules = [
    'start_date' => 'after:tomorrow',
    'end_date' => 'after:start_date'
];
21 يناير 2024 2,670 مشاهدة
Validation

التحقق من أبعاد الصورة في laravel

عند رفع الصور، نستطيع التحقق من أبعاد هذه الصورة بشكل إجباري

['photo' => 'dimensions:max_width=4096,max_height=4096']
21 يناير 2024 2,731 مشاهدة
Routing

Query string parameters to Routes

إذا قمنا بتمرير باراميترز إضافيه للـ route في مصفوفة ، هذه المفاتيح => والقيم ، بشكل تلقائي سوف يتم إضافتها للرابط

Route::get('user/{id}/profile', function ($id) {
    //
})->name('profile');
 
$url = route('profile', ['id' => 1, 'photos' => 'yes']); // Result: /user/1/profile?photos=yes
21 يناير 2024 1,815 مشاهدة
Routing

إرجاع رسالة خطأ من خلال ملف route بدلا من صفحة 404

إذا كناا نريد تحديد روابط لإرجاع رسائل خطأ، بدلا من صفحة 404 الإفتراضيه، يمكن إنشاء رابط خاص لذلك بنهاية صفحة  routes

Route::group(['middleware' => ['auth'], 'prefix' => 'admin', 'as' => 'admin.'], function () {
    Route::get('/home', 'HomeController@index');
    Route::resource('tasks', 'Admin\TasksController');
});
// Some more routes....
Route::fallback(function() {
    return 'Hm, why did you land here somehow?';
});
21 يناير 2024 2,556 مشاهدة
Blade

Blade Directives: IncludeIf, IncludeWhen, IncludeFirst

إذا كنا غير متأكدين من أن ملف blade موجود بالإمكان الإستعاة بأحد الشروط التالية

سيتم تحميل ملف الهيدر إذا كان ملف blade موجود

@includeIf('partials.header')

سيتم تحميل الهيدر فقط إذا كانت role=1

@includeWhen(auth()->user()->role_id == 1, 'partials.header')

اذا كان ملف adminlte.header واذا كان غير موجود يتم تحميل ملف default.header

@includeFirst('adminlte.header', 'default.header')
21 يناير 2024 1,890 مشاهدة
Blade

التحقق من الدخول auth في blade

بدلا من إستخدام الجملة الشرطية if-statement للتحقق إذا كان المستخدم مسجل دخول أو لا، يمكن إستخدام @auth مباشرة

@if(auth()->user())
    // The user is authenticated.
@endif
Shorter:
 
@auth
    // The user is authenticated.
@endauth
The opposite is @guest directive:
 
@guest
    // The user is not authenticated.
@endguest
21 يناير 2024 2,587 مشاهدة
Blade

المتغير loop في foreach في laravel blade

بداخل الـ loop في ملفات blade نستطيع التحقق إذا كانت النتيجة هي الأولى أو الأخيره أو تحمل الرقم زوجي أو فردي فقط من خلال loop

@foreach ($users as $user)
     @if ($loop->first)
        This is the first iteration.
     @endif
     @if ($loop->last)
        This is the last iteration.
     @endif
     <p>This is user {{ $user->id }}</p>
@endforeach

كما يوجد العديد من الخواص يمكن الإطلاع عليها من هنا

21 يناير 2024 2,564 مشاهدة
Blade

صفحة خطأ مخصصة لأخطاء HTTP Code

إذا أردنا إنشاء صفحة خطأ مخصصة لأي خطأ من أخطاء HTTP Code مثل 500، فقط نقوم بإنشاء ملف blade مع رقم الخطأ

resources/views/errors/500.blade.php
403.blade.php 

وهكذا، ويتم تحميلها مباشرة عندما يحصل الخطأ

21 يناير 2024 2,549 مشاهدة
Blade

التحقق إذا كان ملف blade موجود

تستطيع التحقق من ملف blade إذا كان موجود أم لا قبل تحميل الملف

if (view()->exists('custom.page')) {
 // Load the view
}

كما نستطيع وضع مصفوفه من الملفات

return view()->first(['custom.dashboard', 'dashboard'], $data);
21 يناير 2024 2,660 مشاهدة
Eloquent

عمل filter إضافي عند عمل إستعلام بالعلاقات

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

$countries = Country::with(['cities' => function($query) {
    $query->orderBy('population', 'desc');
    $query->take(3);
}])->get();
21 يناير 2024 2,094 مشاهدة
Eloquent

إستخدام withCount لحساب عدد الحقول الأبناء

إذا كان لدينا علاقة hasMany ونريد إظهار الجدول الأب مع عدد الأبناء، لا يجب كتابة جملة إستعلام أخرى، مثلا اذا كان لدينا جدول الأقسام cats ونريد إستخراج أسماء الأقسام مع عدد المنتجات في كل قسم

public function index(){
    $cat=Cat::select('id','title')->withCount('product')->get();
    return $catt;
}

النتيجة تكون كما يلي

{
   "id": 3,
   "title": "Computer, Office & Security",
   "product_count": 2
},
{
    "id": 4,
    "title": "Bags & Shoes",
    "product_count": 2
}

كما تمرير مصفوفة من الحقول الى withCount

Cat::select('id','title')->withCount(['product','comments'])->get();

كما نستطيع عمل ترتيب حسب عدد الأبناء (المنتجات)

Cat::withCount('product')->orderBy('product_count', 'desc')->get();
21 يناير 2024 2,595 مشاهدة
Model

تحديث الجدول الأب عند حدوث تغيير على الجدول الإبن

إذا أردنا عند تحديث حقل أأن يتم تحديث updated_at للأب ، يمكن عمل ذلك من خلال إستخدام $touches، مثال :- عند إضافة تعليق على مقال post، نريد أن يتم تحديث تاريخ تعديل المقال نفسة، يتم ذلك من خلال إضافة $touches->post في comment model

class Comment extends Model{
    protected $touches = ['post'];
}
21 يناير 2024 2,163 مشاهدة