اذا كنا نتعامل مع api لكن لا يوجد نتائج، يمكن إرجاع خطأ 204 ، بمعنى No Content ، فقط قم بإستخدام response()->noContent
public function reorder(Request $request){ foreach ($request->input('rows', []) as $row) { Country::find($row['id'])->update(['position' => $row['position']]); } return response()->noContent(); }
يوجد أنواع متنوعة للجداول عند عمل migration ومن أهمها
$table->ipAddress('visitor'); $table->macAddress('device');
للمزيد من أنوع الحقول من الموقع الرسمي
في laravel 8 تم إستبدال ترقيم الصفحات pagination من bootstrap إلى tailwind، لكن نستطيع إستخدام ترقيم bootstrap من خلال
الذهاب الى صفحة app/Providers/AppServiceProvider.php ومن ثم بداخل الدالة boot
public function boot(){ Paginator::useBootstrap(); }
لإضافة حقل جديد إلى جدول موجود، مثلا إضافة حقل slug إلى جدول articles.
ننشئ migration جديد، ونسيمه addFieldNameToTableName
php artisan make:migration addSlugToPost public function up() { Schema::table('posts', function (Blueprint $table) { $table->string('slug'); }); }
في eloquent، تستطيع عمل تعديل على حقول قواعد البيانات مباشرة دون تحميل البيانات
Cat::where('id',$id)->update(['title' => "Updated Title"]);
إذا أردنا أن يتم جلب البيانات بترتيب عشوائي في كل مرة
$questions = Questions::inRandomOrder()->get();
واذا كنا نجلب البيانات من جدولين بإستخدام العلاقه برتيب عشوائي، مثلا إذا كان لدينا إمتحان ونريد في كل مره أن نجلب سؤال مختلف مع أجوبه يختلف ترتيبها في كل مره
$questions=Question::with([‘answers’=>function(){ $q->inRandomOrder(); }])->inRandomOrder()->get();
نستطيع التحقق من أن قيمة الحقل تساوي قيمة معينة، مثل هنا سنتأكد أن البريد الإلكتروني هو بريد معين
$validator = Validator::make($request->all(), [ 'title' => [ 'required', 'max:255', function($attribute, $value, $fail) { if ($value === 'foo') { return $fail($attribute.' is invalid.'); } }, ], ]);
هنا إذا كانت قيمة الحقل = foo سيتم إرجال title is invalid
كما يمكن ببساطه إستخدام
'title' => [ 'in:foo', ],
هنا اذا كانت قيمة الحقل لا تساوي foo سيتم إرجاع The selected title is invalid.
'title' => [ 'not_in:foo', ],
هنا إذا كانت القيمة تساوي foo سيتم إرجاع خطأ
لجلب مجموع السجلات عند إستخدام pagination يجب تعيين المتغير sum قبل عمل pagination
$query=Post::query(); $sum=$query->sum('post_views'); $posts=$query->paginate(10);
لأنة لو قمنا بعمل
$query=Post::paginate(10); $sum=$query->sum('post_views');
فإنه سيظهر المجموع فقط لكل صفحة.
إذا كان لدينا @foreach في blade ونريد أن يتم طباعة سطر بعد كل عنصر يتم جلبة من قاعدة البيانات، بالإمكان إستخدام المتغير $loop لتحديد اذا كان العنصر الذي تم جلبه هو العنصر الأول أو الأخير أو حتى ما هو رقم العنصر
@foreach($posts as $post) <h2>{{ $post->title }}</h2> @if(!$loop->last) <hr/> @endif @endforeach
403 : ممنوع أن تصل لهذه الصفحة
404 : صفحة غير موجودة
500 : مشكلة في الموقع نفسه
401 : رؤية الصفحة تحتاج ترخيص (كلمة سر)
301 : تم نقل تلك الصفحة نهائيًا
307 : تم نقل تلك الصفحة مؤقتًا
405 : لقد وصلت لتلك الصفحة بطريقة خاطئة
408 : إنتهى وقت محاولة وصولك للصفحة قبل أن تصل إليها
414 : عنوان الصفحة\الموقع URL أطول من الطبيعي
503 : الخدمة غير متوفرة ربما بسبب الضغط الكبير على الموقع
كل أرقام الـ 100 : تعني معلومات إضافية (لن تراها في الغالب)
كل أرقام الـ 200 : تعني النجاح (لن تراها في الغالب)
كل أرقام الـ 300 : تعني إعادة توجيه Redirection
كل أرقام الـ 400 : تعني فشل من العميل “أنت”
كل أرقام الـ 500 : تعني فشل من السيرفر “الموقع نفسه”