-
المساهمات
505 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
4
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو ابراهيم الخليل سماني
-
السلام عليكم هل من الجيد قراءة توثيق laravel مرة واحدة أم كلما واجهتني مشكلة أقرأء الجزء الخاص بها وبالنسبة لقواعدة البيانات يبدوا لي انه يجب ايضا دراسة قواعد البيانات بشكل منفصل عن الإطار لتحكم أكثر ؟
- 1 جواب
-
- 1
-
شكرا جزيلا أخي @Adnane Kadri قرأت كل ماكتبت , كلامك يبعث الأمل على المزيد من الإطلاع والتعمق ولكنني الآن مستعجل قليلا ’ قبل أن أجرب آخر شيء ذكرته قلت أشاركك حواري مع الدعم الفني للإستضافة وأخبرني ماذا افعل بعدها وشكرا لك
- 4 اجابة
-
- 1
-
السلام عليكم في توثيق لبرنامج معيين laravel . تبثه بنجاح لكن بعض الإضافات اول مرة اسمع عنها ولم يتم ذكرها في دورة اكادمية حسوب مثلا لم أفهم جيدا كيف يتم هذا : web sockets You need to run the web sockets all time with the help of supervisor. some command ->start the websocket "php artisan websockets:serve --port=6006" The port can change from .env file هل هذا يفي بالغرض القيام بالتالي إنطاقا من سطر الأوامر الخاص ب cpanel مع تغيير المنفد الى الخاص بنا ؟ ؟؟
- 4 اجابة
-
- 2
-
السلام عليكم لم أفهم جيدا كيف يتم ذلك وليس عندي أي تصور عليه من قبل ’ أرجوا مساعدتي في فهم مايجري عند تنفيد الأمر You need to run the schedules all time with the help of cronjob. Command : php artisan schedule:run So add a cronjob to run schedules and the schedule:run Artisan command will evaluate all of your scheduled tasks and determine if they need to run based on the server's current time. * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1 مع التغيير الى المجلد الرئيسي للبرنامج : cd public_html && php artisan schedule:run >> /dev/null 2>&1 بحيث يصبح من الشكل : هل هذا يعني أنه تم تنفيد الأمر ؟ لكن عندما اذهب من لوحة التحكم الى cron jobs لا أجد أي جدولة تمت إضافتها ؟؟
- 1 جواب
-
- 1
-
السلام عليكم لم أفهم جيدا كيف يتم ذلك وليس عندي أي تصور عليه من قبل ’ أرجوا مساعدتي في فهم مايجري عند تنفيد الأمر You need to run the schedules all time with the help of cronjob. Command : php artisan schedule:run So add a cronjob to run schedules and the schedule:run Artisan command will evaluate all of your scheduled tasks and determine if they need to run based on the server's current time. * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1 مع التغيير الى المجلد الرئيسي للبرنامج : cd public_html && php artisan schedule:run >> /dev/null 2>&1 بحيث يصبح من الشكل : هل هذا يعني أنه تم تنفيد الأمر ؟ لكن عندما اذهب من لوحة التحكم الى cron jobs لا أجد أي جدولة تمت إضافتها ؟؟
-
السلام عليكم في توجيهات لتشغيل برنامج laravel في الإستضافة لم افهم بعض ما اجاء في التوجيه مثل You need to run the web sockets all time with the help of supervisor. some command ->start the websocket "php artisan websockets:serve --port=6006" The port can change from .env file You need to run the schedules all time with the help of cronjob. Command : php artisan schedule:run So add a cronjob to run schedules and the schedule:run Artisan command will evaluate all of your scheduled tasks and determine if they need to run based on the server's current time. * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1 You need to run the queue all time with the help of supervisor. Here we use the redis server for withdrawal process When user place a withdrawal order it will go to queue some command ->start the horizon "php artisan horizon", 'php artisan horizon:terminate' , "php artisan queue:restart"
- 7 اجابة
-
- 1
-
السلام عليكم من أجل تــغيير قييمة العمود "state" في جدول كسر الربط pivot للعلاقة many to many بحيث لدينا : 1) User model public function servicesProccess(){ return $this->belongsToMany(Service::class)->withPivot('state', 'id')->wherePivotIn('state' , [0,1,2,3]); } 2) blade.php <tbody> @foreach ($items as $item) @foreach ($item->servicesProccess as $req ) <tr> <td> {{ $req->title }}</td> <td>{{ $item->name }}</td> {{-- {{ dd($item) }} --}} <td> <form action="{{ route('step.update' , $item) }}" method="post" style="display: inline-block" class="form-inline" > @method('PATCH') @csrf <input hidden type="number" name="id" value="{{ $req->id }}"> <select name="step" id=""> <option value="1" {{ $req->pivot->state == '1' ? "selected disabled" : '' }} >مرحلة 1</option> <option value="2"{{ $req->pivot->state == '2' ? "selected disabled" : ''}} >مرحلة 2 </option> <option value="3"{{ $req->pivot->state == '3' ? "selected disabled" : ''}} >معاينة 3</option> <option value="4" {{ $req->pivot->state == '4' ? "selected disabled" : ''}}>4مرحلة </option> </select> <button style="max-height: 34px ;" class=" btn btn-primary" type="submit" > تعديل <i class="fas fa-pen-fancy"></i></button> </form> <form action="" method="post" style="display: inline-block" class="form-inline" > @method('delete') @csrf <button type="submit" onclick="return confirm('هل أنت متأكد ؟')" class="btn btn-google">حذف <i class="fas fa-trash" ></i></button> </form> </td> </tr> @endforeach @endforeach 3) المتحكم public function update(Request $request , USER $user) { $user->servicesProccess()->updateExistingPivot($request->id , ['state' => $request->step]); } العملية تتم بشكل عادي في حالة كان العنصر الذي نريد تتغيير قيمته وحيد ليس له أي نسخة منه أما إن كان يوجد نسخة أخرى منه فيتم تغيير قيمتها أيضا بطريقة أخرى لاحظ ما أشرت اليه بالمربع الأحمر كله يتشارك في نفس المعرف id فعليه يتم تغيير كل قيم state الموافقة وهذا مالا اريده هل من طريقة أخرى أستطيع بها ان اغيير state بناءا على معرف جدول كسر الربط id : علما أنني أضفته إلى pivot كالتالي : public function servicesProccess(){ return $this->belongsToMany(Service::class)->withPivot('state', 'id')->wherePivotIn('state' , [0,1,2,3]); ^^^^ } <input hidden type="number" name="id" value="{{ $req->pivot->id }}"> وشكرا
- 3 اجابة
-
- 1
-
السلام عليكم لم أستطلع التعديل على قيمة pivot بعد تنفيد الشيرة التالية من المفترض تكون قيمتي pivot معدلة : try { $result = $payment->execute($execution, $apiContext); $user = User::find($request->userId); $servicesCart = $user->servicesInCart; $sevicesTreat = $user->servicesProccess; foreach($servicesCart as $service) { $user->servicesInCart()->updateExistingPivot($service->id, ['bought' => TRUE]); $service->save(); } $sevicesTreat = $user->servicesProccess; foreach($sevicesTreat as $service) { $user->servicesProccess()->updateExistingPivot($service->id , ['state' => 1]); $service->save(); } } catch (Exception $ex) { echo $ex; } العلاقة : public function servicesInCart(){ return $this->belongsToMany(Service::class)->withPivot('number_of_copies' , 'bought')->wherePivot('bought' , FALSE); } public function servicesProccess(){ return $this->belongsToMany(Service::class)->withPivot('state', 'id')->wherePivotIn('state' , [1,2,3]); } لكنني أجد ان قيمة bought فقط من تعدلت كما توضح الصورة وشكرا لكم
- 1 جواب
-
- 1
-
السلام عليكم شكرا على ردك أستاذ ولكن لست هذا ما أعنيه ربما لم أشرح بما فيه الكفاية المعذرة ,عند تنفيذي للشيفرة التالية @foreach(Auth::user()->servicesProccess as $service) @if ( $service->pivot->state == 1) <li class="nav-item"> <a class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a> </li> @endif @endforeach هي بالفعل تعيد مصفوفة وعليه يتم تكرار الرابط في navbar مرتين , عالجتها بهذه الطريقة : @if ( Auth::user()->servicesProccess[0]->pivot->state == 1) <li class="nav-item"> <a class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a> </li> @endif لاحظ أنني إخترت أول عنصر من المصفوفة و إستغنيت عن الحلقة التكرارية , بهذا حل المشكل وظهر الرابط في navbar من غير تكرار , سؤالي كان فقط للإستزادة بخصوص الموضوع و هو أنني لم أفهم لماذا تأتي على شكل مصفوفة لماذا لانخل للقيمة بطريقة مباشرة و هل ماقمت به سليم منطقيا لأننه إشتغل بشكل عادي وشكرا لكم
-
السلام عليكم أرجوا إخباري عن الآلية التي تتم بها جلب مصفوفة الكائنات وطبيعتها بحيث انني مثلا لما قوم بتنفيد الشيفرة يتم تكرار هل معناه كل الحلقات تنفذ الشرط == 1 ولماذا تأتي مصفوفة اصلا لماذا لانستخدمها بشكل مباشر ؟ @foreach(Auth::user()->servicesProccess as $service) @if ( $service->pivot->state == 1) <li class="nav-item"> <a class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a> </li> @endif @endforeach قمت بالتالي ظاهرييا تم حل المشكلة ولكن هل يجدي ؟ @if ( Auth::user()->servicesProccess[0]->pivot->state == 1) <li class="nav-item"> <a class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a> </li> @endif
- 3 اجابة
-
- 1
-
شكرا أستاذ @محمد أبو عواد ’ لم يظهر الخطأ لكن لم يؤدي الغرض المطلوب رغم أن قيمة $service->pivot->state == 1 بالفعل محققة لما ألقيت نظرة على قاعدة البيانات . . شكرا
- 7 اجابة
-
- 1
-
- 7 اجابة
-
- 1
-
- 7 اجابة
-
- 1
-
السلام عليكم عيدكم مبارك وكل عام وانتم بخير وينعاد عليكم بكل خير. اردت الحصول على قيمة state public function servicesInCart(){ return $this->belongsToMany(Service::class)->withPivot(['Quantity' , 'state'])->wherePivot('state' , 0); } في محرك القوالب blade بهذا الشكل : @if ( Auth::user()->servicesInCart->pivot->state == 1) <li class="nav-item"> <a @disabled(true) class="nav-link" href="{{ route('authors.list') }}">إدارة طلبي</a> </li> @endif ولكن في الأخير يظهر لي الخطأ التالي :
- 7 اجابة
-
- 1
-
السلام عليكم عند تشغيل مشروع laravel مثلا بإستخدام wanpاو laragon يمكنني الدخول اليه محليا فقط عن طريق الايبي + المنفذ سؤالي كيف يمكن تحويله الى global بحيث استطيع الدخول اليه من اي حاسوب ومن اي شبة مادام الخادم مشتغل عندي شكرا
- 2 اجابة
-
- 1
-
السلام عليكم عند استخدام @include media-breakpoint-down(sm){ border-radius: 50%; } يظهر لي الخطأ التالي رغم أنني ضمت مكتبة البوتسترات وتفقدت ملفات sass ممكن شرح و إشارةعن مكان او طبيعة الخطأ شكرا ERROR in ./resources/sass/app.scss Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js): SassError: Undefined mixin. ╷ 63 │ ┌ @include media-breakpoint-down(sm){ 64 │ │ border-radius: 50%; 65 │ └ } ╵ resources\sass\section\_intro.scss 63:5 @use resources\sass\app.scss 6:1 root stylesheet at processResult (C:\laragon\www\d_sm\node_modules\webpack\lib\NormalModule.js:758:19) at C:\laragon\www\d_sm\node_modules\webpack\lib\NormalModule.js:860:5 at C:\laragon\www\d_sm\node_modules\loader-runner\lib\LoaderRunner.js:400:11 at C:\laragon\www\d_sm\node_modules\loader-runner\lib\LoaderRunner.js:252:18 at context.callback (C:\laragon\www\d_sm\node_modules\loader-runner\lib\LoaderRunner.js:124:13) at C:\laragon\www\d_sm\node_modules\sass-loader\dist\index.js:54:7 at Function.call$2 (C:\laragon\www\d_sm\node_modules\sass\sass.dart.js:99827:16) at render_closure1.call$2 (C:\laragon\www\d_sm\node_modules\sass\sass.dart.js:85350:12) at _RootZone.runBinary$3$3 (C:\laragon\www\d_sm\node_modules\sass\sass.dart.js:29726:18) at _FutureListener.handleError$1 (C:\laragon\www\d_sm\node_modules\sass\sass.dart.js:28240:21) 1 ERROR in child compilations (Use 'stats.children: true' resp. '--stats-children' for more details)
-
السلام عليكم كيف ينم تغيير تنسيق السمات التوضيحية مثلا لtitle في هذه الحالة : <p title="Lorem ipsum dolor" > Lorem ipsum dolor sit amet...</p> بحيث نظهرها بشكل آخر غير الذي تظهر عليه إفتراضيا؟
- 2 اجابة
-
- 2
-
لا أدري لماذا لم تعمل معي و لاني اردت إستخدامها لشيء آخر أردت ان اختصر ب console لأريكم , هل لو استعملت الأيدي مرتين لا يؤثر في العنصؤ الاب div و icon ؟ // SECTIONS ACTIVE allSections.addEventListener('click', (e) =>{ const id = e.target.dataset.id ; if(id){ // REMOVE SELECTED FROM OTHER BTNS sectbtns.forEach((btn)=> { btn.classList.remove('active'); }) e.target.classList.add('active'); // HIDE OTHER SECTIONS sections.forEach((section)=>{ section.classList.remove('active') }) const element = document.getElementById(id); element.classList.add('active') } }) } pageTransitions();
-
قمت بإنشاء div وداخل هذا وضعت ايقونة i بحيث <div class="controll controll-4" data-id="contact"> <i class="fa-solid fa-briefcase "></i> </div> const allSections = document.querySelector('.main-contnet') allSections.addEventListener('click', (e) =>{ console.log(e.target.dataset.id); } الآن انا لما أضغط على الايقونة يطلعلي undefined و ليس الأيدي المطلوب حتى أضغط في الحافة يظهر لي id في console.log كيف اجعلها لما اضغط على الأيقونة يظهر id الخاص بdiv؟ أم هل من الصحيح ان اكرر الايدي بهاذا الشكل لانني جربته يعمل بشكل عادي <div class="controll controll-4" data-id="contact"> ^^^^^^^^^^^^^^^^^^ <i class="fa-solid fa-briefcase " data-id="contact" ></i> ^^^^^^^^^^^^^^^^^ </div> شكرا
- 6 اجابة
-
- 1
-
السلام عليكم قمت بنسخ ملفات مشروع في نفس المجلد ولكن من غير vendor , node mudles بعذ ذلك نفذت composr install npm nstall php arisan storage:link لكن هذا الاخير يظهر لي خطأ مفاده أن الوصلة (link) موجودة بالفعل وعليه قمت بحذف ملف storage الموجود في public إلا أن الرسالة متواصلة الظهور وشيء آخر وهو أن الرابط الذي يظهر في سطر الاوامر بعذ تنفيد storage:link هو نفس الرابط بإسم المجلد القديم اي ليس المجلد الجديد الذي اعمل عليه البرنامج و في سطر الاوامر الرسالة التي تظهر : C:\laragon\www\newproject λ php artisan storage:link The [C:\laragon\www\store_1\public\storage] link already exists. The links have been created.