-
المساهمات
4657 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
30
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو بلال زيادة
-
لمزامنة نماذج متعددة مع البيانات المحورية المخصصة ، تحتاج إلى ما يلي: $user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], ]); بمعنى آخر sync([ related_id => ['pivot_field' => value], ]); أو يمكنك تجريب foreach ($photos_array as $photo) { $photo_id_array[$photo->id] = ['type' => 'Offence']; } $offence->photos()->sync($photo_id_array, false);
-
يمكنك عمل Loop على مصفوفة الإدخال و إضافة rules لكل إدخال مثل $input = Request::all (); $rules = []; foreach ($input['name'] as $key => $val) { $rules['name.'. $key] = 'required|distinct|min:3'; } $ rules ['description'] = 'required|string'; $ validator = Validator::make ($input, $rules); // Now check validation: if ($ validator->fails()) { }
-
سيكون عليك إعادة كتابة وحدة Hash, قم بإنشاء مجلد app / libraries وأضفه إلى autoload.classmap الخاص composer.json "autoload": { "classmap": [ "app/libraries" ] }, ستقوم بإنشاء كلاس (class) ولكين اسمه Sha1Hash مع تطبيق Illuminate\Hashing\HasherInterface سنضع بداخله ثلاث دوال وهي make, check and needsRehash فيكون كالتالي <?php class SHA1Hash implements Illuminate\Hashing\HasherInterface { public function make($value, array $options = array()) { return hash('sha1', $value); } public function check($value, $hashedValue, array $options = array()) { return $this->make($value) === $hashedValue; } public function needsRehash($hashedValue, array $options = array()) { return false; } } ?> الآن بعد أن انتهينا من صنع ملف Sha1Hash.php, نريد استخدامه افتراضيًا بواسطة Laravel. للقيام بذلك, سننشئ Sha1HashServiceProvider, في المسار <project_folder\app\libraries ونمدد Illuminate \ Support \ ServiceProvider , ونقوم بتسجيله hash component فيصبح الملف كالتالي <?php class Sha1HashServiceProvider extends Illuminate\Support\ServiceProvider { public function register() { $this->app['hash'] = $this->app->share(function () { return new SHA1Hash(); }); } public function provides() { return array('hash'); } } ?> في المسار التالي app/config/app.php نضيف تحت providers التالي 'Sha1HashServiceProvider' و إزالة 'Illuminate\Hashing\HashServiceProvider'
-
يمكنك اتباع القاعدة التالية في تحديث النموذج و هي تجاهل السجل الذي تود تحديثه بإضافة معرف السجل إلى التحقق 'email' => 'sometimes|required|email|unique:users,' . $id وفي حالة الكود الخاص بك يصبح هكذا 'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users','email')->ignore($user->id)], وهذا ينطبق ايضا على حقل username بنفس الشكل. إذا كنت تستخدم rules في التحقق يمكنك إضافة المعرف بهذا الشكل للحقل. $input = Input::all(); $rules = User::$rules['edit']; $rules['email'] .= ',' . $user->id; // هنا $validator = Validator::make($input, $rules); if ($validator->fails()) { return Response::json(array( 'error' => $validator->messages() )); }
-
قبل أي تعديل يمكنك التأكد من extension=pdo_pgsql extension=pgsql في ملف php.ini و إزالة ; (الفاصلة المنقوطة) و يمكنك من خلال ملف .env تغيير قيمة الأتصال و اختيار connection الذي تريده فتصبح DB_CONNECTION=pgsql وتغيير قيم إلى ما يناسب اتصالك. DB_HOST=<your_database_IP_address> DB_PORT=5432 DB_DATABASE=postgres DB_USERNAME=postgres DB_PASSWORD=postgres
-
يمكنك تحديث الصفحة مرة أخرى, ولكن تحدث هذه المشكلة من التحقق من رمز CSRF الذي فشل, لذلك إما أنك لا تنشر رمز CSRF أو تنشر CSRF غير صحيح, السبب في أنها تعمل مع GET هو أنه بالنسبة لمسار GET في Laravel, لا يوجد رمز CSRF منشور. يمكنك إما نشر رمز CSRF مميز في النموذج الخاص بك عن طريق {{ csrf_field() }} أو @csrf أو في مسار app/Http/Middleware/VerifyCsrfToken.php يمكنك استبعاد المسار الذي تريده من التحقق من CSRF من خلال وضعه في protected $except = [ 'your/route' ];
-
يمكنك التحقق من logs الخاص بالعملية من خلال المسار التالي <project_folder>\storage\logs وحل المشكلة أو مشاركة الخطأ معنا لنقوم بمساعدتك في حله.
-
تمام, يمكنك تحميل برنامج سيرفر شخصي, مثل xampp و العمل عليه. أو استخدام hive ستعمل معك شكل ممتاز.
- 5 اجابة
-
- 1
-
-
في ملف AppServiceProvider.php في مسار app\Providers يمكنك وضع التالي View::share('data', [1, 2, 3]); في دالة boot بحيث تصبح public function boot() { View::share('data', [1, 2, 3]); } الآن ستتم مشاركة هذه القيمة عبر جميع views ويمكنك الوصول إليها
-
لا تستخدم أبدًا صلاحيات 777 للأدلة على خادمك المباشر, ولكن على جهازك الخاص ، نحتاج أحيانًا إلى القيام بأكثر من صلاحيات 775, لأن chmod -R 775 storage 7 - يمكن للمالك الكتابة 7 - المجموعة تستطيع الكتابة 5 - لا يستطيع الآخرون الكتابة إذا كان خادم الويب الخاص بك لا يعمل مثل Vagrant, فلن يتمكن من الكتابة إليه, لذلك لديك خياران chmod -R 777 storage أو قم بتغيير Group إلى مستخدم خادم الويب الخاص بك, بافتراض أنها www-data: chown -R vagrant:www-data storage
-
ممكن تعتمد على firebase إذا أمكن و تبرمج فكرتك بشكل سليم. وتعتمد على التخزين باستخدام الأنترنت. أو ممكن تستخدم Hive للتخزين محلياً على الجهاز. ممكن تستخدم: SQ Lite Firebase MOOR idb_sqflite Postgres Back4app Mysql
- 5 اجابة
-
- 1
-
-
يمكنك استخدام return Redirect::back()->withErrors(['msg', 'The Message']); ويمكنك في ملف view استدعائها بهذا الشكل @if($errors->any()) <h4>{{$errors->first()}}</h4> @endif أو يمكنك استخدام return redirect()->back()->with('success', 'your message,here'); وفي ملف view @if (\Session::has('success')) <div class="alert alert-success"> <ul> <li>{!! \Session::get('success') !!}</li> </ul> </div> @endif
-
في php 7.2, لا يمكنك استخدام count على relation object, لذلك لا توجد طريقة واحدة تناسب الجميع لجميع العلاقات. $model->relation()->exists() حل عام يعمل على جميع أنواع العلاقات (php 7.2): if (count($model->relation)) { // exists } سيعمل هذا مع كل علاقة لأن الخصائص الديناميكية ترجع النموذج أو المجموعة. كلاهما يقوم بتطبيق ArrayAccess. single relations: hasOne / belongsTo / morphTo / morphOne $model->relation; count($model->relation); $model->relation; count($model->relation); to-many relations: hasMany / belongsToMany / morphMany / morphToMany / morphedByMany $model->relation; count($model->relation); $model->relation; count($model->relation);
- 2 اجابة
-
- 1
-
-
عندما تستخدم get () تحصل على مجموعة. في هذه الحالة تحتاج إلى تكرارها للحصول على الخصائص: @foreach ($about as $a) {{ $a->title }} @endforeach أو يمكنك فقط الحصول على أحد العناصر من خلال فهرسها: {{ $about[0]->title }}
- 3 اجابة
-
- 1
-
-
تتحقق دالة whereBetween من أن قيمة العمود تقع بين قيمتين. $from = date('2021-01-01'); $to = date('2021-03-02'); Reservation::whereBetween('reservation_from', [$from, $to])->get(); أو في بعض الحالات , تحتاج إلى إضافة نطاق زمني ديناميكيًا فيمكنك استخدام Carbon. Reservation::all()->filter(function($item) { if (Carbon::now->between($item->from, $item->to) { return $item; } });
- 2 اجابة
-
- 1
-
-
في ملف index.php قم بتبديل التالي SELECT * FROM messages WHERE recipient_id = ? Order By id desc إلى التالي SELECT *, u.id,u.username FROM messages m INNER JOIN users u ON m.recipient_id = u.id Order By id desc
- 16 اجابة
-
- 2
-
-
يمكنك استخدام $user_info = DB::table('usermetas') ->select('browser', DB::raw('count(*) as total')) ->groupBy('browser') ->get(); ايضا يمكنك استخدام $browser_total_raw = DB::raw('count(*) as total'); $user_info = Usermeta::getQuery() ->select('browser', $browser_total_raw) ->groupBy('browser') ->pluck('total','browser'); أو افتح الملف config / database.php. ابحث عن مفتاح strict داخل إعدادات اتصال mysql. اضبط القيمة على false.
-
نعم تستطيع, ولكن سيعمل ببطئ نوعا ما. مما يسبب بعض المشاكل.
- 6 اجابة
-
- 1
-
-
إذا لديك حاسوب قوي يمكنك تستخدم macOS بشكل وهمي ولكن ستواجه بعض المشاكل و هي انه يجب التطبيق على موبايل حقيقي. إذا كان لديك أنترنت سريع استخدام RDP MACOS أفضل. هناك شركة macincloud يمكنك زيارة رابط موقعها على الأنترنت من هنا وتقدم هذه الشركة عدة حزم مثل: Pay-As-You-Go حيث معناها تدفع مقابل ما تستخدمه 1$. Managed Server: تدفع شهرياً 25$ مقابل RDP. Dedicated Server: تدفع شهرياً 49$ مقابل RDP. هناك مميزات لكل حزمة تستخدمها ويوجد مقارنة بين الحزم بشكل كامل, يمكنك أختيار ما يناسبك و الأشتراك بأحدى هذه الحزم. يمكن تحميل VMware Workstation على حاسوبك من هنا أو من هنا, ومن ثم تحميل نسخة macOS High Sierra تجد روابطها من هنا أوهنا, ويمكنك استخدام تحميل xcode بشكل يدوي وتثبيته على النسخة بعد تثبيتها, وايضا تحتاج إلى Patch Tool من هنا بعد تحميل vmware وتثبيته على جهازك , و ايضا تحميل نسخة macOS High Sierra. قم بالخطوات التالية: استخراج صورة macOS High Sierra, عن طريق فك ضغط الملف بعد تحميله. قم باستخراج الملف Patch Tool من تنسيق Zip. افتح Patch Tool - Unlocker Master ثم انقر بزر الماوس الأيمن على win-install.cmd وحدد تشغيل كمسؤول. سيقوم بتثبيت ملف التصحيح في برنامج VMware لنظام التشغيل macOS High Sierra والإصدارات الأقدم من أجل فتح برنامج VMware والسماح لك بتثبيت macOS عليه. افتح الآن برنامج VMware, انقر على Create a New Virtual Machine, ثم حدد Recommended ثم Next. حدد I will install the operating system later ثم Next. اختر الآن "Apple Mac OS X" من قائمة أنظمة التشغيل ثم حدد مكان macOS High Sierra وانقر فوق التالي. لا تحدد مساحة القرص, فقط حدد Store virtual disk as a single file وانقر على التالي. تم إنشاء ملفات VM الأساسية لنظام التشغيل macOS High Sierra, فانتقل وانقر فوق Finish. افتح نافذة macOS High Sierra VM على محطة عمل VMware أو المشغل, ثم انقر فوق Edit virtual machine settings. قم بزيادة الذاكرة من 2 جيجا بايت إلى 4 جيجا بايت أو أعلى من ذاكرة الوصول العشوائي لأداء أفضل. قم بزيادة نواة وحدة المعالجة المركزية من مركزين إلى 4 أنوية أو أعلى للحصول على أداء أفضل. أخيرًا, انقر فوق موافق لحفظ جميع التغييرات التي أجريتها على إعدادات virtual machine. افتح نافذة macOS High Sierra VM ثم انقر فوق power في virtual machine. اختر الدولة وانقر على متابعة. اختر تخطيط لوحة المفاتيح وانقر على متابعة. اختر الآن طريقتك لنقل المعلومات إلى جهاز Mac هذا وانقر don’t want to transfer any information ثم انقر فوق متابعة. يمكنك تسجيل الدخول باستخدام معرف Apple الخاص بك. وافق على الشروط والأحكام. املأ الاسم الكامل واسم الحساب وكلمة المرور وحدد مربع تعيين المنطقة الزمنية بناءً على الموقع الحالي. ثم انقر أخيرًا على متابعة لإنشاء حساب المستخدم الخاص بك لنظام التشغيل macOS High Sierra, والذي سيتم تثبيته. في صفحة الإعداد السريع, لا تريد القيام بشيء ما فقط انقر فوق متابعة. انتظر قليلاً لإعداد جهاز Mac الخاص بك. ثم سيتم تشغيله على سطح مكتب macOS High Sierra.
- 6 اجابة
-
- 1
-
-
يمكنك استخدام cron job في PHP, ستحتوي وظيفة cron دائمًا على خمسة أعمدة يمثل كل منها "عامل تشغيل" زمنيًا متبوعًا بالمسار الكامل والأمر المطلوب تنفيذه: * * * * * home/path/to/command/the_command.sh كل عمود من الأعمدة الزمنية له صلة محددة بجدول المهمة. وهم على النحو التالي: تمثل الدقائق الدقائق في ساعة معينة , 0-59 على التوالي. تمثل الساعات ساعات يوم معين , 0-23 على التوالي. تمثل الأيام أيام شهر معين , 1-31 على التوالي. الشهور تمثل شهور سنة معينة , 1-12 على التوالي. يمثل "يوم من الأسبوع" يوم الأسبوع , من الأحد إلى السبت , عدديًا , بالرقم 0-6 على التوالي. Minutes [0-59] | Hours [0-23] | | Days [1-31] | | | Months [1-12] | | | | Days of the Week [Numeric, 0-6] | | | | | * * * * * home/path/to/command/the_command.sh إذا أردت جدولة مهمة في الساعة 12 صباحًا في اليوم الأول من كل شهر 0 0 1 * * home/path/to/command/the_command.sh إذا أردت جدولة مهمة للتشغيل كل يوم سبت في الساعة 8:30 صباحًا 30 8 * * 6 home/path/to/command/the_command.sh يمكنك استخدام دالة exec لتنفيذ ملفات .sh.
- 1 جواب
-
- 1
-
-
يتم استخدام {!! !!} لطباعة النص مع عدم الحماية من أكواد html لذلك يتم طباعة النص كما هو فمثلا {{ $text }} يصبح {!! $text !!} في Laravel 5 يتم استخدام {!!html_entity_decode($text)!!}
-
قم بإنشاء ملف وليكن اسمه helpers.php في المسار التالي app\Helpers طبعا تنشأ مجلد اسمه helpers داخل مجلد app ثم في ملف composer.json تقوم بإضافة الملف ليتم تحميله تلقائيا في المشروع عن طريق إضافة التالي "autoload": { "classmap": [ ... ], "psr-4": { "App\\": "app/" }, "files": [ "app/helpers.php" // اسم ملفك هنا ] }, ومن ثم تنفيذ الأمر التالي composer dump-autoload ومن ثم في ملف helpers.php تستطيع إنشاء إي دالة و من ثم يمكنك استخدامها في أي ملف view تريده. داخل ملف helpers.php لتستطيع مشاركة الدالة ضمن ملفات views التي تريدها.
-
يوجد عدة طرق منها هو نقل ما بداخل مجلد Public و وضعه في Public_html مباشرة و من ثم تغيير التوجية إلى الملفات في ملف index.php بعد نقله من مجلد public فيمكنك تغيير require __DIR__.'/../vendor/autoload.php'; فتصبح require __DIR__.'/vendor/autoload.php'; وتغيير $app = require_once __DIR__.'/../bootstrap/app.php'; إلى $app = require_once __DIR__.'/bootstrap/app.php'; مع تغيير APP_URL APP_DEBUG بداخل ملف .env لتشغيل أوامر Artisan عن طريق المتصفح يمكنك استخدام Artisan::call() مثلا Artisan::call('key:generate'); Artisan::call('cache:clear'); Artisan::call('route:clear'); Artisan::call('config:clear'); Artisan::call('view:clear'); Artisan::call('migrate:refresh --seed'); Artisan::call('db:seed'); Artisan::call('storage:link'); مع إضافة use Illuminate\Support\Facades\Artisan;