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

Mahmoud Alrashidi

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

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

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

كل منشورات العضو Mahmoud Alrashidi

  1. لدي في قاعدة البيانات الجداول التالية: hackathons id name ... hackathon_user hackathon_id user_id users id name و لدي العلاقة التالية في النموذج Hackathon : public function participants() { return $this->belongsToMany(User::class); } أريد جلب سجلات الجدول hackathons مرتبة وفق عدد المشاركين كيف يُمكن ذلك؟
  2. لا يمكنني الإرسال بنجاح إلى عناوين متعددة عند استخدام Mail :: send من Laravel ، لكن الكود يعمل عندما أحدد مستلمًا واحدًا فقط. // for example $emails = array("foo@email.com", "bar@email.com"); $input = Input::all(); Mail::send('emails.admin-company', array('body' => Input::get('email_body')), function($message) use ($emails, $input) { $message ->from('admin@admin.org', 'Administrator') ->subject('Admin Subject'); foreach ($emails as $email) { $message->to($email); } }); وتمرير مصفوفة: // for example $emails = array("foo@email.com", "bar@email.com"); $input = Input::all(); Mail::send('emails.admin-company', array('body' => Input::get('email_body')), function($message) use ($emails, $input) { $message ->from('admin@admin.org', 'Administrator') ->subject('Admin Subject'); $message->to($emails); }); ولكن لا يبدو أنهما يعملان وأحصل على رسائل فشل عند إرجاع Mail::failures ، يعرض var_dump ل Mail :: failures عناوين البريد الإلكتروني التي حاولت الإرسال إليها ، على سبيل المثال: array(2) { [0]=> string(13) "foo@email.com" [1]=> string(13) "bar@email.com" } ما المشكلة هنا و كيف يُمكن حلها؟
  3. ما هي أفضل طريقة للتعامل مع الرموز منتهية الصلاحية في Laravel ، أعني أنه لدي صفحة ولديها بعض الروابط التي تؤدي طلبات Ajax . إنها تعمل بشكل جيد عند تحميل الصفحة ولكن عندما أنتظر بعض الوقت ، أحصل على خطأ عدم تطابق رمز مميز. TOKEN MISMATCH error الآن ، لا بد لي من تحديث الصفحة لجعلها تعمل مرة أخرى. ولكن ، لا أريد تحديث الصفحة. أريد طريقة ما لتحديث الرمز المميز أو بعض الحلول الأخرى لإصلاحه.
  4. الطريقة الأسرع والأبسط لتثبيت Laravel هي عبر أمر composer. وذلك من خلال التوثيق الرسمي ، يوضح أنه يمكننا تثبيته باستخدام هذا: composer create-project laravel/laravel example-app ولكن ، عند تشغيل الأمر أعلاه ، سيحصل على أحدث إصدار من Laravel. كيف يمكنني التحكم فيه إذا كنت أرغب في تثبيت إصدار أقدم.
  5. أحاول تثبيت برنامج تثبيت laravel مع composer على جهاز كمبيوتر Ubuntu الخاص بي ، ولكني أحصل على هذا الخطأ أثناء التثبيت: Problem 1 - laravel/installer v1.4.1 requires ext-zip * -> the requested PHP extension zip is missing from your system. - laravel/installer v1.4.0 requires ext-zip * -> the requested PHP extension zip is missing from your system. - Installation request for laravel/installer ^1.4 -> satisfiable by laravel/installer[v1.4.0, v1.4.1]. To enable extensions, verify that they are enabled in those .ini files: - /etc/php/7.0/cli/php.ini - /etc/php/7.0/cli/conf.d/10-opcache.ini - /etc/php/7.0/cli/conf.d/10-pdo.ini - /etc/php/7.0/cli/conf.d/20-calendar.ini - /etc/php/7.0/cli/conf.d/20-ctype.ini - /etc/php/7.0/cli/conf.d/20-exif.ini - /etc/php/7.0/cli/conf.d/20-fileinfo.ini - /etc/php/7.0/cli/conf.d/20-ftp.ini - /etc/php/7.0/cli/conf.d/20-gettext.ini - /etc/php/7.0/cli/conf.d/20-iconv.ini - /etc/php/7.0/cli/conf.d/20-json.ini - /etc/php/7.0/cli/conf.d/20-phar.ini - /etc/php/7.0/cli/conf.d/20-posix.ini - /etc/php/7.0/cli/conf.d/20-readline.ini - /etc/php/7.0/cli/conf.d/20-shmop.ini - /etc/php/7.0/cli/conf.d/20-sockets.ini - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini - /etc/php/7.0/cli/conf.d/20-sysvsem.ini - /etc/php/7.0/cli/conf.d/20-sysvshm.ini - /etc/php/7.0/cli/conf.d/20-tokenizer.ini You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode. أحصل على الخطأ عند تنفيذ: composer global require "laravel/installer" هل من حل للمُشكلة؟
  6. أحاول نقل المجلد public إلى مكان آخر. ومع ذلك ، لا يمكنني العثور على مكان لتعديل متغير public_path. الآن ، يقوم التابع public_path بإرجاع المسار الخطأ للمجلد. أين يمكنني تعيين المسار الذي تُعيده الدالة public_path ؟
  7. لدي عمودين في جدول servers: ip hostname لدي التحقق التالي من العمود ip: 'data.ip' => ['required', 'unique:servers,ip,'.$this->id] هذا يعمل فقط لعمود IP. ولكن كيف نفعل ذلك ليعمل على العمود hostname، أريد التحقق من صحة data.ip باستخدام أعمدة IP و hostname. لأنه يمكن أن تكون مكررة في الأعمدة IP و hostname ، عندما يكتب المستخدم IP.
  8. أحاول الحصول على عنوان IP الخاص بالعميل في Laravel، من السهل الحصول على عنوان IP الخاص بالعميل في PHP باستخدام: $_SERVER["REMOTE_ADDR"] إنها تعمل بشكل جيد فيPlain PHP ، ولكن عندما أستخدم نفس الشيء في Laravel ، فإنها تُرجع عنوان IP للخادم بدلاً من IP الخاص بالزائر. هل هناك طريقة أخرى للحصول عليها في Laravel ؟
  9. عندما أقوم بتشغيل composer install، أتلقى الخطأ التالي: Your requirements could not be resolved to an installable set of packages Problem 1 - Installation request for symfony/event-dispatcher v4.0.1 -> satisfiable by symfony/event-dispatcher[v4.0.1]. - symfony/event-dispatcher v4.0.1 requires php ^7.1.3 -> your PHP version (7.0.22) does not satisfy that requirement. Problem 2 - Installation request for doctrine/instantiator 1.1.0 -> satisfiable by doctrine/instantiator[1.1.0]. - doctrine/instantiator 1.1.0 requires php ^7.1 -> your PHP version (7.0.22) does not satisfy that requirement. Problem 3 - Installation request for symfony/yaml v4.0.1 -> satisfiable by symfony/yaml[v4.0.1]. - symfony/yaml v4.0.1 requires php ^7.1.3 -> your PHP version (7.0.22) does not satisfy that requirement. Problem 4 - symfony/event-dispatcher v4.0.1 requires php ^7.1.3 -> your PHP version (7.0.22) does not satisfy that requirement. - symfony/http-kernel v3.4.1 requires symfony/event-dispatcher ~2.8|~3.0|~4.0 -> satisfiable by symfony/event-dispatcher[v4.0.1]. - Installation request for symfony/http-kernel v3.4.1 -> satisfiable by symfony/http-kernel[v3.4.1]. و هذا ملف composer.json الخاص بي: { "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "type": "project", "require": { "php": ">=5.6.4", "brozot/laravel-fcm": "^1.2", "guzzlehttp/guzzle": "^6.3", "laravel/framework": "5.4.*", "laravel/tinker": "~1.0", "maatwebsite/excel": "^2.1", "prettus/l5-repository": "^2.6", "pusher/pusher-php-server": "^3.0", "yajra/laravel-datatables-oracle": "8.*", "zizaco/entrust": "5.2.x-dev" }, "require-dev": { "fzaninotto/faker": "~1.4", "mockery/mockery": "0.9.*", "phpunit/phpunit": "~5.7" }, "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/" }, "files": [ "app/Helper/HelperFunction.php" ] }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "scripts": { "post-root-package-install": [ "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "php artisan key:generate" ], "post-install-cmd": [ "Illuminate\\Foundation\\ComposerScripts::postInstall", "php artisan optimize" ], "post-update-cmd": [ "Illuminate\\Foundation\\ComposerScripts::postUpdate", "php artisan optimize" ] }, "config": { "preferred-install": "dist", "sort-packages": true, "optimize-autoloader": true } } كيف يمكنني إصلاح ذلك ؟
  10. يحتوي التوثيق الرسمي للارافيل على وظيفة sync (): $user->roles()->sync( array( 1, 2, 3 ) ); يمكن أيضًا إقران قيم الجدول المحوري الأخرى بالمعرفات المقدمة بهذا الشكل: $user->roles()->sync(array( 1 => array('expires' => true))); في المثال الأخير يتم إضافة صف محوري واحد فقط. ما لا أفهمه هو كيف يمكنني إقران سجلات جدول محوري أخرى إذا كان هناك أكثر من صف واحد لتتم مزامنته؟
  11. لدي نموذج مستخدم Laravel يحتوي على قاعدة تحقق فريدة من نوعها على اسم المستخدم والبريد الإلكتروني. عندما أقوم بتحديث النموذج ، أقوم بإعادة التحقق من الحقول ، حتى لا توجد مشكلة في التحقق من صحة القاعدة المطلوبة: $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'], 'username' => ['required', 'string', 'alpha_dash', 'max:190', 'unique:users,username'], ]); لكن يأتيني الخطأ: The username has already been taken. The email has already been taken. هل هناك طريقة لإصلاح هذا؟
  12. أقوم بتطوير مشروع لارافيل ، وهو في الأساس موقع به وظائف لإنشاء الحسابات . الخادم يدعم فقط التشفير من نوع SHA1- وهو أمر غير آمن تمامًا. لا يمكنني الغوص في شفرة المصدر وإجراء التغييرات. إذا كان هناك أي طريقة لاستخدام SHA1 ، فسأكون ممتنًا. لقد قرأت للتو عن BCrypt ، إنه رائع ولكن لا يمكنني تغيير كود المصدر ليناسب BCrypt. تمكنت من وضع SHA1 عند التسجيل مثل هذا: $password = $input['password']; $password = sha1($password); لكنني ببساطة لا أستطيع تسجيل الدخول. هل افعلها بشكل خاطئ؟ يبدو أن Laravel لن يسمح لي بتسجيل الدخول.
  13. أحاول التحقق من مصفوفة POST في Laravel: $validator = Validator::make($request->all(), [ "names.*" => 'required|string', "description.*" => "required|string" ]); أرسل POST فارغًا وأحصل على خطأ. في التحقق . كيف نتحقق من صحة المصفوفة في Laravel؟ عندما أرسل النموذج مع إدخال input name="names[]"
  14. أنا أقوم بتشغيل laravel 5.8 على خادم Ubuntu 16.04 مع PHP7. محاولة تثبيت حزمة cviebrock / eloquent-sluggable تعطي ببعض الأخطاء: Do not run Composer as root/super user! See https://getcomposer.org/root for details Using version ^4.2 for cviebrock/eloquent-sluggable ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - phpunit/php-code-coverage 4.0.7 requires ext-dom * -> the requested PHP extension dom is missing from your system. - phpunit/php-code-coverage 4.0.7 requires ext-dom * -> the requested PHP extension dom is missing from your system. - Installation request for phpunit/php-code-coverage (installed at 4.0.7) -> satisfiable by phpunit/php-code-coverage[4.0.7]. To enable extensions, verify that they are enabled in those .ini files: - /etc/php/7.0/cli/php.ini - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini - /etc/php/7.0/cli/conf.d/10-opcache.ini - /etc/php/7.0/cli/conf.d/10-pdo.ini - /etc/php/7.0/cli/conf.d/20-calendar.ini - /etc/php/7.0/cli/conf.d/20-ctype.ini - /etc/php/7.0/cli/conf.d/20-exif.ini - /etc/php/7.0/cli/conf.d/20-fileinfo.ini - /etc/php/7.0/cli/conf.d/20-ftp.ini - /etc/php/7.0/cli/conf.d/20-gd.ini - /etc/php/7.0/cli/conf.d/20-gettext.ini - /etc/php/7.0/cli/conf.d/20-iconv.ini - /etc/php/7.0/cli/conf.d/20-json.ini - /etc/php/7.0/cli/conf.d/20-mbstring.ini - /etc/php/7.0/cli/conf.d/20-mcrypt.ini - /etc/php/7.0/cli/conf.d/20-mysqli.ini - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini - /etc/php/7.0/cli/conf.d/20-phar.ini - /etc/php/7.0/cli/conf.d/20-posix.ini - /etc/php/7.0/cli/conf.d/20-readline.ini - /etc/php/7.0/cli/conf.d/20-shmop.ini - /etc/php/7.0/cli/conf.d/20-sockets.ini - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini - /etc/php/7.0/cli/conf.d/20-sysvsem.ini - /etc/php/7.0/cli/conf.d/20-sysvshm.ini - /etc/php/7.0/cli/conf.d/20-tokenizer.ini You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode. Installation failed, reverting ./composer.json to its original content. ليس لدي مشكلة في تثبيت هذه الحزمة على الإصدار المحلي من التطبيق.
  15. أود أن أكون قادرًا على إضافة خاصية / خاصية مخصصة إلى نموذج Laravel / Eloquent عند تحميله ، على سبيل المثال ، في الوقت الحالي ، لدي في المتحكم: public function index() { $sessions = EventSession::all(); foreach ($sessions as $i => $session) { $sessions[$i]->available = $session->getAvailability(); } return $sessions; } سيكون من الجيد حذف الحلقة وأن تكون الخاصية available معيّنة ومعبأة بالفعل.
  16. أحاول المرور على جميع التعليقات التي نشرها مؤلف منشور معين و عرضها بهذا الشكل: foreach($post->user->comments as $comment) { echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>"; } و هذه نتيجة العرض: First comment (2) This is a comment (3) This is the second Comment (2) كيف يمكنني الطلب عن طريق post_id بحيث يتم ترتيب القائمة أعلاه بهذا الشكل: 2،2، 3
  17. أحاول إعادة التوجيه إلى الصفحة السابقة برسالة عندما يتحقق شرط: App::fatal(function($exception) { return Redirect::back()->with('msg', 'The Message'); } و في صفحة العرض أحاول الوصول إلى الرسالة باستخدام: Session::get('msg') ولكن لا يتم عرض أي شيء ، هل أفعل شيئًا خاطئًا هنا؟
  18. لدي نموذج Eloquent له نموذج مرتبط: public function option() { return $this->hasOne('RepairOption', 'repair_item_id'); } public function setOptionArrayAttribute($values) { $this->option->update($values); } عندما أقوم بإنشاء النموذج ، فإنه لا يحتوي بالضرورة على نموذج مرتبط. عندما أقوم بتحديثه ، قد أضيف خيارًا أم لا. لذلك أحتاج إلى التحقق من وجود النموذج ذي الصلة ، إما لتحديثه أو إنشائه ، على التوالي: $model = RepairItem::find($id); if (Input::has('option')) { if (<related_model_exists>) { $option = new RepairOption(Input::get('option')); $option->repairItem()->associate($model); $option->save(); $model->fill(Input::except('option'); } else { $model->update(Input::all()); } }; حيث <related_model_exists> هو الكود الذي أبحث عنه.
  19. أحاول إنشاء صفحة تقرير تعرض تقارير من تاريخ محدد إلى تاريخ محدد. هذا هو الكود الحالي الخاص بي: $now = date('Y-m-d'); $reservations = Reservation::where('reservation_from', $now)->get(); ما يفعله هذا في لغة SQL العادية: select * from table where reservation_from = $now لكن ما أريده هو: SELECT * FROM table WHERE reservation_from BETWEEN '$from' AND '$to كيف يُمكنني عمل ذلك في لارافيل؟
  20. لدي جدول يحتوي من بين أعمدة أخرى ، على عمود لإصدارات المتصفح. وأريد ببساطة أن أعرف من مجموعة السجلات ، كم عدد كل نوع من أنواع المتصفحات. لذلك ، أحتاج إلى الحصول على شيء مثل هذا: إجمالي السجلات: 10 ؛ إنترنت إكسبلورر 8: 2 ؛ كروم 25: 4 ؛ Firefox 20: 4. هذا ما قمت به لكنه حاياً يُرجع فقط المتصفحات: $user_info = Usermeta::groupBy('browser')->get(); أريد إرجاع عدد كل متصفح مع كل مجموعة جزئية.
  21. أتساءل إن كان في لارافيل طريقة مُعينة للتحقق من أن مجموعة Eloquent فارغة بالإضافة إلى حساب عدد عناصر تلك المجموعة حالياً أقوم بالتالي: $result = Model::where(...)->get() للتحقق من أن المجموعة ليست فارغة: if(!$result) و لحساب عدد عناصر المجموعة: count($result)
  22. أحاول تهجير ملف users لكن عند تنفيذ أمر التهجير يُعطي الخطأ التالي: [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_uniq(email)) ملف التهجير الخاص بي: Schema::create('users', function(Blueprint $table) { $table->increments('id'); $table->string('name', 32); $table->string('username', 32); $table->string('email', 320); $table->string('password', 64); $table->string('role', 32); $table->string('confirmation_code'); $table->boolean('confirmed')->default(true); $table->timestamps(); $table->unique('email', 'users_email_uniq'); });
  23. كيف يُمكن إنشاء متغير داخل ملف Blade جربت التالي: {{ $old_section = "whatever" }} لكن هذا يقوم بطباعة whatever أنا أعلم أنه يُمكن كتابة: <?php $old_section = "whatever"; ?>
  24. أرغب في الحصول على قيمة من خلال SQL التالي باستخدام Eloquent ORM: SELECT COUNT(*) FROM (SELECT * FROM abc GROUP BY col1) AS a; فكرت في الطريقة التالية: $sql = Abc::from('abc AS a')->groupBy('col1')->toSql(); $num = Abc::from(\DB::raw($sql))->count(); print $num; ماهي الطريقة الصحيحة لفعل ذلك؟
  25. أحاول تسجيل الدخول لتطبيق لارافيل لكن بالرغم من إدخال البيانات الصحيحة يظهر لي الخطأ التالي: These credentials do not match our records و هذا المُتحكم الخاص بتسجيل الدخول: <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Notifications\LoginToWebsite as LoginToWebsiteNotification; use App\Providers\RouteServiceProvider; use App\Rules\ReCaptcha; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; use App\Models\User; use App\Models\ActiveCode; class LoginController extends Controller { use AuthenticatesUsers , TwoFactorAuthenticate; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = RouteServiceProvider::HOME; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest')->except('logout'); } protected function authenticated(Request $request, $user) { $user->notify(new LoginToWebsiteNotification()); return $this->loggendin($request , $user); } protected function validateLogin(Request $request) { $request->validate([ $this->username() => 'required|string', 'password' => 'required|string', 'g-recaptcha-response' => ['required' , new Recaptcha] ],[ 'g-recaptcha-response.required' => 'Click to confirm you are not a bot' ]); } } و هذا الكود الخاص بالنموذج User: <?php namespace App\Models; use App\Notifications\ResetPassword as ResetPasswordNotification; use App\Notifications\VerifyEmail as VerifyEmailNotification; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable implements MustVerifyEmail { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password','two_factor_type' , 'phone_number' , 'is_superuser' , 'is_staff' ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; /** * Send the password reset notification. * * @param string $token * @return void */ public function sendPasswordResetNotification($token) { $this->notify(new ResetPasswordNotification($token)); } /** * Send the email verification notification. * * @return void */ public function sendEmailVerificationNotification() { $this->notify(new VerifyEmailNotification); } public function setPasswordAttribute($value) { $this->attributes['password'] = bcrypt($value); } public function isSuperUser() { return $this->is_superuser; } public function isStaffUser() { return $this->is_staff; } public function activeCode() { return $this->hasMany(ActiveCode::class); } public function hasTwoFactor($key) { return $this->two_factor_type == $key; } public function hasTwoFactorAuthenticatedEnabled() { return $this->two_factor_type !== 'off'; } public function hasSmsTwoFactorAuthenticationEnabled() { return $this->two_factor_type == 'sms'; } } لم أفهم سبب المُشكلة.
×
×
  • أضف...