Amir Alsaeed
الأعضاء-
المساهمات
166 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Amir Alsaeed
-
لدي قاعدة بيانات تحوي عدد كبير من المجموعات collections، هل يوجد طريقة استطيع من خلالها بإجراء export على كل المجموعات في قاعدة البيانات دفعة واحدة بدلاً من إجرائها على كل مجموعة على حدى. حاولت تنفيذ أمر التصدير التالي دون تحديد مجموعة معيّنة: mongoexport -d mydatabase -o backup.json ولكن ظهر لي الخطأ التالي: No collection specified! لأنه يجب أن أقوم بتحديد اسم collection لاستخراجها. فكيف يمكنني استخراج كل المجموعات بدلاً من مجموعة واحدة؟
-
أحاول إضافة مستخدم جديد ليتم التحقق من اسم المستخدم وكلمة المرور بدلاً من الدخول مباشرةً إلى نسخة mongodb من خلال اتصال خارجي remote connection. واتبعت الخطوات المشروحة في التوثيق من خلال إضافة مستخدم جديد على جدول admin الموجود بشكل افتراضي: use admin db.addUser('admin123', '123'); db.auth('admin123','123'); وبعدها قمت بالخروج وتشغيل mongo مجدداً، ولكن لم يطلب اسم مستخدم وكلمة مرور وقام بالدخول تلقائياً من جديد. ماهي المشكلة؟ وكيف يمكنني تطبيق هذه الحماية؟
-
لدي مجموعة من المستندات مكوّنة من البنية التالية: { "_id":ObjectId("e7c5942f08fe44c621912952"), "boxTitle": "Box1", "balls":[ { "number":"1", "color":"blue" }, { "number":"2", "color":"red" } ] }, وأحاول الحصول على المستندات التي تحقق شرط عناصر محددة من المصفوفة balls. ولكن عندما أقوم بتجربة الاستعلام التالي: find({"balls.color": "red"}, {"balls.color": 1}) يتم إرجاع هذا المستند لكن مع جميع عناصر المصفوفة balls، ولكن أنا أرغب بالحصول فقط على عنصر المصفوفة الذي يحقق الشرط أي فقط العنصر ذو اللون الأحمر، بدلاً من إرجاع العنصرين معاً. كيف يمكنني تحقيق ذلك؟
- 2 اجابة
-
- 1
-
هل من الممكن تعديل قيم حقل في مستند ما بالاعتماد على حقل آخر ضمن نفس المستند؟ بشكل مشابه لما نقوم به في sql في دمج الاسم الأول واسم العائلة إلى حقل الاسم الكامل: UPDATE user SET fullname = firstname + ' ' + lastname أي في حال استطعت الحصول على قيم الحقول firstname و lastname في المستند: updateOne( {}, { $set : { fullname : firstname + ' ' + lastname } ); ولكن لا أعلم ماهي الطريقة للحصول على قيم هذه الحقول ضمن نفس الاستعلام.
-
لدي مجموعة من المستندات بالبنية التالية: { "_id" : ..., "employees" : ["employeeName1"], "depts" : ["2223"] } وقمت بإجراء استعلام للحصول على المستندات التي تحوي عدد محدد من الموظفين employees بهذا الشكل: find({ employees : { $size : 2 }}) ولكن كيف يمكنني جلب المستندات التي تحوي أكبر من عدد محدد؟ لقد حاولت استخدام gt$ بدلاً من size ولكن لم أحصل على النتيجة المطلوبة: find({ employees : { $size: { $gt : 5 } }}) فهل هنالك طريقة أخرى لأتمكن من جلب المستندات التي تحوي عدد عناصر ضمن مصفوفة أكبر أو أصغر من عدد محدد (دون تغيير بنية المستند الحالية)؟
- 4 اجابة
-
- 1
-
أحاول تطبيق الاستعلام عن جزء من سلسلة نصية في Mongodb بشكل مشابه للاستعلام LIKE وباستخدام العلامة ( % ) في قواعد البيانات العلائقية sql: SELECT * FROM books WHERE book_title LIKE '%m%' ولكن لم أجد استعلام مشابه له ضمن التوثيق في mongodb. كيف يمكنني الاستفادة من الاستعلامات عن جزء من النص؟
-
أحاول استخدام المسارات في Octane ضمن لارافل، وقمت بإضافة الكود التالي في ملف web.php: use Laravel\Octane\Facades\Octane; use Symfony\Component\HttpFoundation\Response; Octane::route('GET', '/test', function(){ return new Response('hello'); }); والكود السابق يعمل بشكل صحيح، ولكن عندما حاولت بأكثر من طريقة وضع return view بدلاً من new Response أحصل على الأخطاء التالية: TypeError: Laravel\Octane\Octane::invokeRoute(): Return value must be of type Symfony\Component\HttpFoundation\Response أو صفحة الخطأ 404 فكيف أستطيع تمرير صفحة view مع البيانات بدلاً من response ؟ هل يمكنني تمرير view كما هو الحال في route facade في لارافل؟
-
لدي API مبنية بواسطة لارافل، ولكن بعد العمل على بناء كامل المشروع اتضح أنه يجب علي التوجّه إلى استخدام Lumen بدلاً من لارافل والاستفادة من كامل خصائص micro-framework الموجودة ضمنه. هل يمكنني تحويل المشروع نفسه إلى Lumen بدلاً من إنشاء مشروع جديد ونسخ الأكواد من مشروع لآخر؟ وماهي الخطوات التي يمكنني اتباعها لتنفيذ ذلك؟ وهل يوجد أي خصائص من المشروع قد لا تعمل ضمن بيئة Lumen؟ مع العلم أن نسخة إصدار مشروع لارافل الحالي 8 وأرغب بالتحويل إلى Lumen 8 أيضاً.
-
أحاول إطلاق حدث معيّن عندما يقوم المستخدم بالتسجيل في الموقع لإرسال بريد الكتروني له من طرف الخادم ضمن Laravel Lumen ولكن يظهر لدي الخطأ التالي ولا يتم إطلاق هذا الحدث: Type error: Argument 1 passed to Illuminate\Mail\Mailable::queue() must implement interface Illuminate\Contracts\Queue\Factory, instance of Illuminate\Queue\DatabaseQueue given ولدي الكود التالي ضمن المتحكّم الخاص بتوثيق المستخدم: $this->dispatch(new RegisteredUser($user)); والكود الخاص بـ RegsiteredUser.php: <?php namespace App\Mail; use App\Models\User; use Illuminate\Mail\Mailable; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; classRegisteredUser extends Mailable implements ShouldQueue { use Queueable, SerializesModels; protected $user; public function __construct(User $user) { $this->user = $user; } /** * Build the message. * * @return $this */ public function build() { return $this->view('testmail')->to('testmail@testmail.com', 'Test') ->from('testmail@testmail.com', 'test')->replyTo('testmail@testmail.com', 'test') ->subject('Hello'); } } كيف أستطيع حل هذه المشكلة؟
-
لدي مشروع يعمل بشكل سليم في بيئة التطوير وعلى خادم الويب، ولكن عندما أقوم بالتحديث ضمن Forge بتنفيذ الأمر التالي: composer update --no-dev php artisan optimize يظهر هذا الخطأ: [RuntimeException] The lock file does not contain require-dev information, run install with the --no-dev option or run update to install those packages. حاولت أيضاً استخدام composer update بدلاً من composer update --no-dev فظهر الخطأ التالي: Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Nothing to install or update Generating autoload files PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::getCachedCompilePath() in /home/forge/default/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php on line 28 PHP Stack trace [Symfony\Component\Debug\Exception\FatalErrorException] Call to undefined method Illuminate\Foundation\Application::getCachedCompilePath() Script php artisan clear-compiled handling the post-install-cmd event returned with an error [RuntimeException Error Output: PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::getCachedCompilePath() in /home/forge/default/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php on line 28 PHP Stack trace: فماهي هذه المشكلة هنا؟ وكيف يمكنني حلها؟
-
أرغب بإنشاء الجدول التالي أثناء عمليات التهجير على قاعدة البيانات في مشروع لارافل: CREATE TABLE Payments ( ID int PRIMARY KEY, Department_ID INT, Salary decimal(9,2) CHECK (Salary < 500.00) ); واستطعت من إنشاء البنية التالية: Schema::create('Payments', function (Blueprint $table) { $table->increments('id'); $table->integer('department_id'); $table->decimal('salary',9,2); }); ولكن كيف يمكنني إضافة هذه القيود عليها مثل: CHECK (Salary < 500.00) ؟
-
لدي نسخة سابقة من مشروع لارافل وأحاول إضافة مكتبة sanctum إليه. ولكن عندما أقوم تحميل sanctum من خلال composer أحصل على الخطأ التالي: Your requirements could not be resolved to an installable set of packages. Problem 1 - laravel/sanctum[v2.9.0, ..., 2.x-dev] require illuminate/contracts ^6.9|^7.0|^8.0 -> found illuminate/contracts[v6.10.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require. - Root composer.json requires laravel/sanctum ^2.9 -> satisfiable by laravel/sanctum[v2.9.0, ..., 2.x-dev]. حاولت حل رسالة الخطأ هذه من خلال تحميل contracts في لارافل من التوثيق الرسمي: composer require illuminate/contracts ولكن ظهرت أخطاء جديدة: Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires illuminate/contracts ^8.36, found illuminate/contracts[v8.36.0, v8.36.1, v8.36.2, 8.x-dev] but these were not loaded, likely because it conflicts with another require. ما حل هذه المشكلة؟
-
أحاول تسجيل الدخول من تطبيق موبايل من خلال استخدام passport في لارافل. عن طريق استخدام آلية Password Grand Tokens ولكن مهما قمت بتغيير معلومات الدخول أحصل على الخطأ التالي لجميع المستخدمين: {"error":"invalid_client","message":"Client authentication failed"} وهذه هي البيانات التي أقوم بتمريرها في postman: { "grant_type": "password," "client_id": "1," "client_secret": "FEERJFSDIRKKBBNVOUTKfdm49f," "username": "test@test.com," "password": "test," "scope": "" } ولكن عندما احاول الحصول على المعلومات من الموقع نفسه مثلاً api/user مع إضافة الترويسة Authorization والتوثيق Bearer token أستطيع الحصول على البيانات دون مشاكل. كيف يمكنني حل هذه المشكلة؟
-
أحاول استخدام مكتبة Passport في لارافل، وعند تنفيذ أمر التحميل: php artisan passport:install ظهر لي الخطأ التالي: 'openssl' is not recognized as an internal or external command, operable program or batch file. مع العلم أن نظام التشغيل لدي هو ويندوز. كيف أستطيع حل هذه المشكلة؟
-
لقد قمت بنسخ مشروع لارافل وقمت بإعادة تسميته. ثم قمت بحذف مجلّد vendor وتشغيل الأوامر التالية من جديد: composer self-update composer-update npm install bower install ولكن الآن عندما أقوم بتشغيل المشروع في المتصفّح، أجد رسالة الخطأ التالية: InvalidArgumentException in Compiler.php line 36: Please provide a valid cache path. ErrorException in Filesystem.php line 111: file_put_contents(F:\www\example\app\storage\framework/sessions/edf262ee7a2084a923bb967b938f54cb19f6b37d): failed to open stream: No such file or directory ماهي المشكلة هنا؟
-
أحاول إضافة Tailwind CSS في مشروع لارافل، من خلال الأمر التالي: npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9 ثم: npx tailwindcss init وأقوم بعدها بتعديل محتوى ملف إعدادات tailwind على الشكل التالي: module.exports = { purge: [ "./resources/**/*.blade.php", "./resources/**/*.js", ], darkMode: false, theme: { extend: {} }, variants: { extend: {} }, plugins: [] }; ولكن عند تشغيل الأمر npm run dev يظهر لي الخطأ التالي: ERROR in ./resources/css/app.css Module build failed(from ./node_modules/css-loader/index/js); TypeError: getProcessedPlugins is not a function ماهي الطريقة الصحيحة لإضافة tailwind إلى لارافل؟
-
استخدم Session flash في لارافل أثناء التحقق من قيم المدخلات ضمن form لإظهار رسائل الخطأ إلى المستخدمين. وكما وجدت ضمن التوثيق الرسمي في لارافل أنه عند إنشاء session flash وتعيين قيمه لها، يتم إجراء destroy لهذه الجلسة: Session::flash( 'some_key', $some_data ); للحصول على الجلسة: {{ Session::get( 'some_key' ) }} ولكن عندما لا يتم تطبيق التحقق من المدخلات يظهر الخطأ أيضاً في الصفحة، وعندما أقوم بتعديل الفورم والضغط على submit يتم إرسال البيانات وإدخالها في قاعدة البيانات وكل شيء يصبح على مايرام باستثناء أن الخطأ يعود ويظهر من جديد ضمن الصفحة. نفس الحال عند الضغط على submit مع وضع قيم خاطئة. كيف يمكن حل هذه المشكلة؟
-
لدي فرضاً العنوان التالي: http://localhost/?var1= وأريد الحصول على هذه المتغيرات التي تم تمريرها في الطلب حتى لو كانت فارغة. حاولت استخدام التابع has: Request::has('var1'); ولكنه يعيد false دوماً. ما الخطأ؟ وهل استطيع الحصول عليها باتباع طريقة أخرى؟
-
عندما أقوم بتنفيذ الأمر: npm run production في مشروع لارافل يظهر لدي الخطأ التالي: Block-scoped declarations not yet supported وهذا هو النص الكامل للخطأ: > @ production /home/vagrant/myproject/pr1 > node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js /home/vagrant/myproject/pr1/node_modules/laravel-mix/setup/webpack.config.js:120 let extractPlugin = new plugins.ExtractTextPlugin( ^^^ SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:404:25) at Object.Module._extensions..js (module.js:432:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Module.require (module.js:366:17) at require (module.js:385:17) at requireConfig (/home/vagrant/projects/nielsvroman/node_modules/webpack/bin/convert-argv.js:96:18) at /home/vagrant/projects/nielsvroman/node_modules/webpack/bin/convert-argv.js:109:17 at Array.forEach (native) npm ERR! Linux 3.19.0-25-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "production" npm ERR! node v5.0.0 npm ERR! npm v3.3.6 npm ERR! code ELIFECYCLE npm ERR! @ production: `node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @ production script 'node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'. npm ERR! This is most likely a problem with the package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js npm ERR! You can get their info via: npm ERR! npm owner ls npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! /home/vagrant/myproject/pr1/npm-debug.log والكود الموجود حالياً في ملف webpack.min.js: const { mix } = require('laravel-mix'); /* |-------------------------------------------------------------------------- | Mix Asset Management |-------------------------------------------------------------------------- | | Mix provides a clean, fluent API for defining some Webpack build steps | for your Laravel application. By default, we are compiling the Sass | file for the application as well as bundling up all the JS files. | */ mix.js([ 'resources/assets/plugins/jquery-1.11.3.min.js', 'resources/assets/plugins/bootstrap/js/bootstrap.min.js', 'resources/assets/js/main.js' ], 'public/js' ); mix.combine([ 'resources/assets/plugins/bootstrap/css/bootstrap.min.css', 'resources/assets/plugins/font-awesome/css/font-awesome.css', 'resources/assets/css/styles.css' ], 'public/css/all.css'); كيف يمكنني حل المشكلة؟
-
أحاول توليد أرقام معرّفة فريدة في لارافل غير الموجودة كمفتاح أولي في جدول قاعدة البيانات، وحاولت استخدام التابع: $uuid = Uuid::generate(); ولكنه يعيد غرض Object فارغ دون أي قيمة. حاولت أيضاً تمرير قيمة للتابع generate كرقم ولكن نفس النتيجة. كيف يمكنني تحقيق ذلك؟
-
لدي عدد من الملفات التي يتم رفعها إلى خادم الويب وإظهارها للمستخدمين، وأقوم باستخدام الكود التالي لإرسال الملف إلى المستخدم: return Response::download($path, $filename, $headers); ولكن يتم تحميل الملف مباشرةً إلى جهاز المستخدم، كيف يمكنني إتاحة إمكانية استعراض ملف PDF في متصفح المستخدم قبل التحميل بدلاً من تحميله بشكل مباشر؟ هل يوجد طريقة أخرى لإرسال الملفات في لارافل؟
-
أحاول إنشاء اختبار test لرفع الملفات في مشروع لارافل، ولكنه يفشل في كل مرة. كود الاختبار: $JSONResponse = $this->call('POST', '/upload', [], [], [ 'photo' => new UploadedFile(base_path('public/uploads/') . '/img1.jpg', 'img1.jpg') ]); $this->assertResponseOk(); $this->seeJsonStructure(['name']); $response = json_decode($JSONResponse); $this->assertTrue(file_exists(base_path('public/uploads') . '/' . $response['name'])); والمتحكّم المسؤول عن رفع الملف: $name = 'anyname' . '.' . $request->file('photo')->getClientOriginalExtension(); $request->file('photo')->move('/uploads', $name); return response()->json(['name' => $name]); علماً بأنه سيتم حفظ الملفات ضمن المسار التالي: /public/uploads/ أين الخطأ؟ وماهي الطريقة الصحيحة لاختبار رفع الملفات في لارافل؟
-
أقوم باستخدام Laravel Mix اعتماداً على WebPack والآن يظهر لدي الخطأ التالي: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration.output.path: The provided value "public" is not an absolute path! وعندما أقوم بحذف محتويات webpack.mix.js يبقى الخطأ. كما حاولت أيضاً حذف المجلّد node_modules وإعادة تحميله من خلال npm install، ولكن لم تحل المشكلة. كيف يمكنني معالجة هذا الخطأ؟
- 1 جواب
-
- 1
-
عندما أقوم بإجراء اختبار الوحدة على بعض التوابع في المشروع، يظهر لدي الخطأ التالي: There was 1 failure: 1) Warning No tests found in class "UsersTest". FAILURES! Tests: 2, Assertions: 1, Failures: أي لا يتم التعرف على أي اختبار داخل الصف. وهذا هو الصف المسؤول عن الاختبار: class UsersTest extends MainTest { public function fetching_users() { $this->times(5)->makeUser(); $this->getJson('api/users'); $this->assertResponseOk(); } private function createUser($userFields=[]) { $user = array_merge([ 'status' => $this->fake->sentence, 'bio' => $this->fake->paragragraph ], $userFields); while($this->times --)User::create($user); } } كيف يمكنني حل هذه المشكلة؟
- 1 جواب
-
- 1
-
لدي مشروع لارافل على نظام التشغيل Ubuntu، وعند رفع الملفات من خلال المشروع يظهر لدي الخطأ التالي: GD Library extension not available with this PHP installation Ubuntu Nginx نظام التشغيل لدي: ubuntu 14.04، واستخدم Nginx كخادم للويب. وقمت بالتأكد من إعطاء الصلاحيات اللازمة 777 على المجلّد public/uploads. كيف أستطيع حل المشكلة؟
- 2 اجابة
-
- 1