Mahmoud Alrashidi
الأعضاء-
المساهمات
104 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mahmoud Alrashidi
-
لدي في قاعدة البيانات الجداول التالية: hackathons id name ... hackathon_user hackathon_id user_id users id name و لدي العلاقة التالية في النموذج Hackathon : public function participants() { return $this->belongsToMany(User::class); } أريد جلب سجلات الجدول hackathons مرتبة وفق عدد المشاركين كيف يُمكن ذلك؟
-
لا يمكنني الإرسال بنجاح إلى عناوين متعددة عند استخدام 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" } ما المشكلة هنا و كيف يُمكن حلها؟
-
ما هي أفضل طريقة للتعامل مع الرموز منتهية الصلاحية في Laravel ، أعني أنه لدي صفحة ولديها بعض الروابط التي تؤدي طلبات Ajax . إنها تعمل بشكل جيد عند تحميل الصفحة ولكن عندما أنتظر بعض الوقت ، أحصل على خطأ عدم تطابق رمز مميز. TOKEN MISMATCH error الآن ، لا بد لي من تحديث الصفحة لجعلها تعمل مرة أخرى. ولكن ، لا أريد تحديث الصفحة. أريد طريقة ما لتحديث الرمز المميز أو بعض الحلول الأخرى لإصلاحه.
-
الطريقة الأسرع والأبسط لتثبيت Laravel هي عبر أمر composer. وذلك من خلال التوثيق الرسمي ، يوضح أنه يمكننا تثبيته باستخدام هذا: composer create-project laravel/laravel example-app ولكن ، عند تشغيل الأمر أعلاه ، سيحصل على أحدث إصدار من Laravel. كيف يمكنني التحكم فيه إذا كنت أرغب في تثبيت إصدار أقدم.
-
أحاول تثبيت برنامج تثبيت 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" هل من حل للمُشكلة؟
-
أحاول نقل المجلد public إلى مكان آخر. ومع ذلك ، لا يمكنني العثور على مكان لتعديل متغير public_path. الآن ، يقوم التابع public_path بإرجاع المسار الخطأ للمجلد. أين يمكنني تعيين المسار الذي تُعيده الدالة public_path ؟
-
لدي عمودين في جدول servers: ip hostname لدي التحقق التالي من العمود ip: 'data.ip' => ['required', 'unique:servers,ip,'.$this->id] هذا يعمل فقط لعمود IP. ولكن كيف نفعل ذلك ليعمل على العمود hostname، أريد التحقق من صحة data.ip باستخدام أعمدة IP و hostname. لأنه يمكن أن تكون مكررة في الأعمدة IP و hostname ، عندما يكتب المستخدم IP.
-
أحاول الحصول على عنوان IP الخاص بالعميل في Laravel، من السهل الحصول على عنوان IP الخاص بالعميل في PHP باستخدام: $_SERVER["REMOTE_ADDR"] إنها تعمل بشكل جيد فيPlain PHP ، ولكن عندما أستخدم نفس الشيء في Laravel ، فإنها تُرجع عنوان IP للخادم بدلاً من IP الخاص بالزائر. هل هناك طريقة أخرى للحصول عليها في Laravel ؟
-
عندما أقوم بتشغيل 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 } } كيف يمكنني إصلاح ذلك ؟
-
يحتوي التوثيق الرسمي للارافيل على وظيفة sync (): $user->roles()->sync( array( 1, 2, 3 ) ); يمكن أيضًا إقران قيم الجدول المحوري الأخرى بالمعرفات المقدمة بهذا الشكل: $user->roles()->sync(array( 1 => array('expires' => true))); في المثال الأخير يتم إضافة صف محوري واحد فقط. ما لا أفهمه هو كيف يمكنني إقران سجلات جدول محوري أخرى إذا كان هناك أكثر من صف واحد لتتم مزامنته؟
-
لدي نموذج مستخدم 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. هل هناك طريقة لإصلاح هذا؟
- 3 اجابة
-
- 1
-
أقوم بتطوير مشروع لارافيل ، وهو في الأساس موقع به وظائف لإنشاء الحسابات . الخادم يدعم فقط التشفير من نوع SHA1- وهو أمر غير آمن تمامًا. لا يمكنني الغوص في شفرة المصدر وإجراء التغييرات. إذا كان هناك أي طريقة لاستخدام SHA1 ، فسأكون ممتنًا. لقد قرأت للتو عن BCrypt ، إنه رائع ولكن لا يمكنني تغيير كود المصدر ليناسب BCrypt. تمكنت من وضع SHA1 عند التسجيل مثل هذا: $password = $input['password']; $password = sha1($password); لكنني ببساطة لا أستطيع تسجيل الدخول. هل افعلها بشكل خاطئ؟ يبدو أن Laravel لن يسمح لي بتسجيل الدخول.
- 2 اجابة
-
- 1
-
أحاول التحقق من مصفوفة POST في Laravel: $validator = Validator::make($request->all(), [ "names.*" => 'required|string', "description.*" => "required|string" ]); أرسل POST فارغًا وأحصل على خطأ. في التحقق . كيف نتحقق من صحة المصفوفة في Laravel؟ عندما أرسل النموذج مع إدخال input name="names[]"
- 3 اجابة
-
- 1
-
أنا أقوم بتشغيل 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. ليس لدي مشكلة في تثبيت هذه الحزمة على الإصدار المحلي من التطبيق.
- 2 اجابة
-
- 1
-
أود أن أكون قادرًا على إضافة خاصية / خاصية مخصصة إلى نموذج Laravel / Eloquent عند تحميله ، على سبيل المثال ، في الوقت الحالي ، لدي في المتحكم: public function index() { $sessions = EventSession::all(); foreach ($sessions as $i => $session) { $sessions[$i]->available = $session->getAvailability(); } return $sessions; } سيكون من الجيد حذف الحلقة وأن تكون الخاصية available معيّنة ومعبأة بالفعل.
- 2 اجابة
-
- 1
-
أحاول المرور على جميع التعليقات التي نشرها مؤلف منشور معين و عرضها بهذا الشكل: 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
- 3 اجابة
-
- 1
-
أحاول إعادة التوجيه إلى الصفحة السابقة برسالة عندما يتحقق شرط: App::fatal(function($exception) { return Redirect::back()->with('msg', 'The Message'); } و في صفحة العرض أحاول الوصول إلى الرسالة باستخدام: Session::get('msg') ولكن لا يتم عرض أي شيء ، هل أفعل شيئًا خاطئًا هنا؟
- 2 اجابة
-
- 1
-
لدي نموذج 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> هو الكود الذي أبحث عنه.
-
أحاول إنشاء صفحة تقرير تعرض تقارير من تاريخ محدد إلى تاريخ محدد. هذا هو الكود الحالي الخاص بي: $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 كيف يُمكنني عمل ذلك في لارافيل؟
- 2 اجابة
-
- 2
-
لدي جدول يحتوي من بين أعمدة أخرى ، على عمود لإصدارات المتصفح. وأريد ببساطة أن أعرف من مجموعة السجلات ، كم عدد كل نوع من أنواع المتصفحات. لذلك ، أحتاج إلى الحصول على شيء مثل هذا: إجمالي السجلات: 10 ؛ إنترنت إكسبلورر 8: 2 ؛ كروم 25: 4 ؛ Firefox 20: 4. هذا ما قمت به لكنه حاياً يُرجع فقط المتصفحات: $user_info = Usermeta::groupBy('browser')->get(); أريد إرجاع عدد كل متصفح مع كل مجموعة جزئية.
- 2 اجابة
-
- 1
-
أحاول تهجير ملف 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'); });
-
كيف يُمكن إنشاء متغير داخل ملف Blade جربت التالي: {{ $old_section = "whatever" }} لكن هذا يقوم بطباعة whatever أنا أعلم أنه يُمكن كتابة: <?php $old_section = "whatever"; ?>
- 2 اجابة
-
- 1
-
أرغب في الحصول على قيمة من خلال 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; ماهي الطريقة الصحيحة لفعل ذلك؟
- 2 اجابة
-
- 1
-
أحاول تسجيل الدخول لتطبيق لارافيل لكن بالرغم من إدخال البيانات الصحيحة يظهر لي الخطأ التالي: 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'; } } لم أفهم سبب المُشكلة.