اذهب إلى المحتوى

بلال زيادة

الأعضاء
  • المساهمات

    4376
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    30

كل منشورات العضو بلال زيادة

  1. مرحبا, هل ممكن ترفع المجلد كامل بدون نقص لاي ملف مع التنسيقات ؟
  2. يمكنك وضع المتغير هكذا في الوسم التالي <li><a href="{{ route('user.profile', $nickname) }}">Profile</a></li> بحيث $nickname هو المتغير وفي هذه الحالة هو اسم الشخص الذي تود الدخول إلى عضويته.
  3. يمكنك استخدام الأمر التالي composer remove vendor/package بحيث vendor/package هو اسم المكتبة التي تود حذفها.
  4. هذه هي الطريقة التي يمكنك بها استخدام recursive relations: public function childrenAccounts() { return $this->hasMany('Account', 'act_parent', 'act_id'); } public function allChildrenAccounts() { return $this->childrenAccounts()->with('allChildrenAccounts'); } ثم يمكن استخدامها بهذا الشكل: $account = Account::with('allChildrenAccounts')->first(); $account->allChildrenAccounts; $account->allChildrenAccounts->first()->allChildrenAccounts; بهذه الطريقة يمكنك حفظ الكثير من queries. سيؤدي هذا إلى تنفيذ استعلام واحد لكل مستوى متداخل + استعلام إضافي واحد. public function scopeChildless($q) { $q->has('childrenAccounts', '=', 0); } $childlessAccounts = Account::childless()->get();
  5. يمكنك استخدام {{ url('') }} بهذا الشكل <link href="{{ url('') }}/css/main.css" rel="stylesheet">
  6. يمكنك استخدام دوال PHP echo env('APP_ENV'); putenv('APP_ENV=testing'); echo env('APP_ENV'); أو يمكنك استخدام مصفوفة $_ENV $_ENV['DB_CONNECTION'] = 'mysql';
  7. يمكنك استخدام الشكل التالي $emails = ['myoneemail@esomething.com', 'myother@esomething.com','myother2@esomething.com']; Mail::send('emails.welcome', [], function($message) use ($emails) { $message->to($emails)->subject('This is test e-mail'); }); var_dump( Mail:: failures()); exit; أو الشكل التالي $users_temp = explode(',', 'first@example.com,second@example.com'); $users = []; foreach($users_temp as $key => $ut){ $ua = []; $ua['email'] = $ut; $ua['name'] = 'test'; $users[$key] = (object)$ua; } Mail::to($users)->send(new OrderAdminSendInvoice($o));
  8. يمكن وضع version الذي تريده بجانب كلمة laravel هكذا composer create-project --prefer-dist laravel/laravel:^7.0 blog أو من خلال ملف composer.json يمكنك تعديل إصدار النسخة "laravel/framework": "^7.0", إلى الإصدار الذي يناسبك. ومن ثم تنفيذ الأمر التالي composer install composer update
  9. أفضل طريقة لحل هذه المشكلة "X-CSRF-TOKEN" هي إضافة الكود التالي إلى main layout، والاستمرار في إجراء مكالمات ajax بشكل طبيعي: في الهيدر <meta name="csrf-token" content="{{ csrf_token() }}" /> في script <script type="text/javascript"> $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); </script>
  10. يمكنك إجراء بعض التعديلات على دالة download لتصبح بهذا الشكل public function getDownload() { $file= public_path(). "/download/testfile.pdf"; $headers = array( 'Content-Type: application/pdf', ); return Response::download($file, 'filename.pdf', $headers); } أو يمكنك استخدام return response()->download(public_path('file_path/from_public_dir.pdf'));
  11. قم بإضافة هذا السطر إلى ملف composer.json "config": { "preferred-install": "dist", "sort-packages": true, "optimize-autoloader": true, "platform":{"php":"7.0"} } ثم قم بتنفيذ الأمر التالي composer update
  12. لمزامنة نماذج متعددة مع البيانات المحورية المخصصة ، تحتاج إلى ما يلي: $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);
  13. يمكنك عمل 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()) { }
  14. سيكون عليك إعادة كتابة وحدة 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'
  15. يمكنك اتباع القاعدة التالية في تحديث النموذج و هي تجاهل السجل الذي تود تحديثه بإضافة معرف السجل إلى التحقق '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() )); }
  16. قبل أي تعديل يمكنك التأكد من 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
  17. يمكنك تحديث الصفحة مرة أخرى, ولكن تحدث هذه المشكلة من التحقق من رمز CSRF الذي فشل, لذلك إما أنك لا تنشر رمز CSRF أو تنشر CSRF غير صحيح, السبب في أنها تعمل مع GET هو أنه بالنسبة لمسار GET في Laravel, لا يوجد رمز CSRF منشور. يمكنك إما نشر رمز CSRF مميز في النموذج الخاص بك عن طريق {{ csrf_field() }} أو @csrf أو في مسار app/Http/Middleware/VerifyCsrfToken.php يمكنك استبعاد المسار الذي تريده من التحقق من CSRF من خلال وضعه في protected $except = [ 'your/route' ];
  18. يمكنك التحقق من logs الخاص بالعملية من خلال المسار التالي <project_folder>\storage\logs وحل المشكلة أو مشاركة الخطأ معنا لنقوم بمساعدتك في حله.
  19. تمام, يمكنك تحميل برنامج سيرفر شخصي, مثل xampp و العمل عليه. أو استخدام hive ستعمل معك شكل ممتاز.
  20. في ملف AppServiceProvider.php في مسار app\Providers يمكنك وضع التالي View::share('data', [1, 2, 3]); في دالة boot بحيث تصبح public function boot() { View::share('data', [1, 2, 3]); } الآن ستتم مشاركة هذه القيمة عبر جميع views ويمكنك الوصول إليها
  21. لا تستخدم أبدًا صلاحيات 777 للأدلة على خادمك المباشر, ولكن على جهازك الخاص ، نحتاج أحيانًا إلى القيام بأكثر من صلاحيات 775, لأن chmod -R 775 storage 7 - يمكن للمالك الكتابة 7 - المجموعة تستطيع الكتابة 5 - لا يستطيع الآخرون الكتابة إذا كان خادم الويب الخاص بك لا يعمل مثل Vagrant, فلن يتمكن من الكتابة إليه, لذلك لديك خياران chmod -R 777 storage أو قم بتغيير Group إلى مستخدم خادم الويب الخاص بك, بافتراض أنها www-data: chown -R vagrant:www-data storage
  22. ممكن تعتمد على firebase إذا أمكن و تبرمج فكرتك بشكل سليم. وتعتمد على التخزين باستخدام الأنترنت. أو ممكن تستخدم Hive للتخزين محلياً على الجهاز. ممكن تستخدم: SQ Lite Firebase MOOR idb_sqflite Postgres Back4app Mysql
  23. يمكنك استخدام 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
  24. في 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);
×
×
  • أضف...