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

معتز المشكلي

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

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

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

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

    1

أجوبة بواسطة معتز المشكلي

  1. شكرا جزيلا على الإجابة السابقة 

    قمت بجلب البيانات بطريقه تشابه ما هو موجود أعلاه وبقيت بعض الميزات التي لم لا أعرف كيف أقوم بإدراجاها في التطبيق قمت بشرحها على المسار التالي 

    invoice-generator/invoice/create

    في المشروع أدناه 

    https://github.com/thankyouplatfo/invoice-generator.git

    تكمن المشكلة عندي الان في ملئ اوسمة html بالنتائج التي حصلت علىيها إذا كانت الوسم (في حالتي select) يتطلب حلقة 

  2. في هذا السؤال سأستعين بمثال عايشته على أرض الواقع في أحد مشاريعي 

    كتدريب قمت بإنشاء نظام فوترة إلكتروني بسيط يحتوي هذا النظام على مؤسسات يقوم بإنشائها المستخدم مدير النظام ثم من خلال هذه الشركات يتمكن من إصدار فاتورة في مرحله إصدار الفاتورة أرغب بجلب العديد من المعلومات بواسطة ajax jq أولى هذه المعلومات هي بيانات الشركة من خلال القائمة المنسدلة اختار اسم الشركة المقصودة فأتيني عنوانها ورقم تلفيوناتها وغيرها من المعلومات أيضا هذه الشركة لديها أصناف لمنتجاتها فأريد أن يرسل مع الطلب جميع الاصناف في قائمة منسدلة ثم بالضغط على الصنف احصل على المنتج ومعلومات المنتج 

    العلاقة بن الصنف والشركة متعدد إلى متعدد 

    العلاقة بين الصنف و المنتج متعدد إلى متعدد 

    يرجع سبب عدم قدرتي على جلب المعلومات إلى سببين الاول عدم فهمي لطريقة عمل كود ajax jq فأنا لا أعرف منطقة جلب المعلومات من الطلب كيف تعمل  والشق الثاني لا أعرف كيف أقوم بدمج المعلومات القادمة من الطلب في الحقول 

    أرجو شرح كيف تعمل ajax  jq داخل laravel 

    كيف أقوم بجلب علاقات مثل (متعدد إلى متعدد|متعدد إلى واحد)

    وشكرا للجميع 

  3. شكرا 

    بتاريخ الآن قال عبود سمير:

    مرحباً معتز،

    يوجد لديك خطأ في تعريف المتحكم:

    
    class UserConroller extends Controller
    
    // الصواب
    class UserController extends Controller

    في صفحة العرض profile يوجد خطأ أيضاً:

    
    <img src="{{asser(images/avatar).$user->avatar}}" class="w3-cercle" style="size: 255px">
    
    {{-- الصواب --}}
    <img src='{{asset("images/avatar/$user->avatar")}}' class="w3-cercle" style="size: 255px">

    كما أنك في حالة إنشاء مستخدم جديد سيأخذ الصورة default.png لكن إسم الصورة لديك في المجلد هو avatar.png يجب تغييرها لنفس الإسم حتى تظهر الصورة الإفتراضية في حالة عدم وضع صورة.

    ملاحظة: هذا القسم هو للأسئلة العامة و ليس لأسئلة الدورات فإن واجهتك أي مشكلة أو إستفسار يُستحسن طرحه أسفل الدرس و سيُتابع معك المدربين هناك.

    بخصوص الإصدارات الخاصة بلارافيل فلا يوجد فرق كبير بينها و من الأفضل لك التعرف على عدة طرق لعمل شيء ما. كما أن الأكاديمية تقوم بتحديث و إضافة مسارات جديدة في العديد من الأوقات. و من المؤكد أنهم سيأخذون ملاحظاتك كلها بعين الإعتبار في تحديثاتهم المستقبلية.

    كما أن معالجة الأخطاء شيء مهم و هي ما ستزيد في خبرتك و تطوير مستواك.

    بالتوفيق.

    شكرا

  4. بتاريخ الآن قال محمد أبو عواد:

    مرحبا مجددا
    هل يمكنك ارفاق ملفات المشروع؟
    شكرا لك

    لكن لدي استفسار هل يتم استخدام إصدارات لا رافيل مختلفة لتعويد المتدرب على مختلف بيئات لا رافيل أرجوا التوضيح ؟

    ملاحظة

    من الجلي جدا أن المدرب يستخدم إصدارا اقدم من إصداري مما تسبب في إرباكي وقد قمت بمعالجة العديد من المشاكل منذ بدأ المسار دون أن أسأل فأنا لا أسأل إلا للضرورة لكي أتقدم في المسار وأكتسب المهارات بسرعة أرجو إن كان الإصدار من لا رافيل الذي يستخدمه المدرب قديما أن يتم تحديث كافة مسار إنستقرام حاسوب لأني كمتخرج سأعمل على ما عودتني عليه الأكادمية ولن أهتم للقديم وكذا سأتابع من حيث تركتني الأكادمية أي من الإصدار 8 وما بعده مشكله كهذه ربما حللتها بنفسي في المسار السابق ولكنها استعصت علي في هذا المسار (رغم تصحيح الأخطاء الإملائية التي نبهتوني عليها مشكورين) 

    ملاحظة أخيرة 

    كل مدرب (مع إحترامي لجمعيكم) ينصحنا بكتابة الكود بطريقة أفضل من المدرب الأساسي لماذا لا يتم إلزام المدرب الأساسي بكتابة الكود وفق أفضل النهج المطروحة 

    وشكرا 

    instagramwebapp.rar

  5. بتاريخ الآن قال محمد أبو عواد:

    مرحبا معتز
    لنعدل هذا السطر 

    
    $user = User::find(auth()->user()->id);

    ليكون كذلك

    
    $user = User::find(auth()->id());

    وأيضا هذا السطر 

    
    oute::get('/', function () {
    ^^^^

    لديك مشكلة في كتابة كلمة Route حيث انك نسيت حرف R
    وأيضا لديك مشكلة في هذا السطر

    
    	Route::get('user/profile', [UserConroller::class, 'edit']);
                                        ^^^^^^^^^

    حاول تعديل كلمة UserController
    حاول القيام بالتعديلات ثم حاول مرة أخرى
    شكرا لك

    لم يحصل شيء لا زالت صفحة 404 NOT FOUND تظهر

     

    UserConroller.rar

    web.rar

    • أعجبني 1
  6. الكود من صفحة المتحكم

    public function edit()
        {
            //عرض الصفحة الشخصية الخاصة بتعديل البيانات
            $user = User::find(auth()->user()->id);
            return view('auth.profile',compact('user'));
        }

    الكود من صفحة الويب 

    oute::get('/', function () {
    	if (Auth::check()) {
    		return redirect('/home');
    	}else{
    		return view('Auth/login');
    	}
    });
    
    Route::group(['middleware' => ['auth']], function() {
      
    	Route::get('user/profile', [UserConroller::class, 'edit']);
    	
      });
    
    Auth::routes();

    صورة الملف المقصود أدناه

    مع ذلك لا تظهر صفحة الملف الشخصي لي لماذا؟

    152.JPG

    • أعجبني 1
  7. <form action="/projects/{{$project->id}}/tasks/{{$task->id}}" method="POST" class="w3-bar-item w3-left w3-large" style="display:inline;padding:0;margin:0;">
      @method('PATCH')
      @csrf
      <input type="checkbox" name="done"class="w3-check cnsb-bor-green w3-border-left" {{$task->done ? 'disabled':''}} onchange="this.form.submit()">
    </form> 

    لماذا يتعطل الــــinput أعلاه بنفسه وليس فقط الأوامر المرتبطة به .

  8. لدي هذا المثال الذي يعرض المنطقة حسب التقسيم الجغرافي للمملكة

    $saudi_regions = [
       'مناطق المملكة'=>'منطقة مكة المكرمة منطقة المدينة الخ',
       ' makkah_Region'=>[1,2,3],
       ' madinah_Region'=>[1,2,3],
       ' al_Qassim_Region'=>[1,2,3],
       ' eastern_Region'=>[1,2,3],
       ' asir_Region'=>[1,2,3],
       ' tabuk_Region'=>[1,2,3],
       ' hail_Region'=>[1,2,3],
       ' northern_Border_Region'=>[1,2,3],
       ' jizan_Region'=>[1,2,3],
       ' najran_Region'=>[1,2,3],
       ' al_Baha_Area'=>[1,2,3],
       ' al_Jouf_Region'=>[1,2,3],
    
    ];
    ?>
    <?php foreach ($saudi_regions as $key => $value): ?>
      <?php for ($i=0; $i < count($key) ; $i++):?>
        <?php echo "$('#select2').append('<option value='هنا يتم جلب مناطق المملكة بصفة عامة من خلال السطر الاول'>'+kingdom_regions_matrix[i]+'</option>')"; ?>
    	/*
    وفي داخل  الوسم ارغب بجلب المناطق الفرعية التي هي عبارة عن مصفوفة مقابل   المفتاح فتكون النتيجة
    
    
    	<option class="riyadh_Region">المزاحمية </option>	
      <option class="riyadh_Region">عسير </option>	
      <option class="riyadh_Region">الخ</option>	
      ثم 
      <option class="makkah_Region">جدة</option> 	
      <option class="makkah_Region">الجموم</option> 	
      <option class="makkah_Region">الخ</option> 	
      الخ
    
    
    
     كيف يتم ذلك
    
    	*/
      <?php endfor ?>
    <?php endforeach ?> 

    وأيضا المدن التي تتبع هذه المنطق بواسطة جافا سكريبت تم حل الموضوع بطريقة استهلكت واخصرت الكثير من الكود أي بمقدار 50 بالمائة ولاكن أرغب عرض الكود ب php كونه أكثر سهولة وانضف في الكود انضر للمثال أدناه ثم أجب 

    • أعجبني 1
  9. بتاريخ 14 ساعات قال سامح أشرف:

    يبدو أن هناك إختلاف بين الكود المرفق والصور، ربما قام Laravel بحفظ نسخة من ملف index.blade.php في الملفات المؤقتة، ويمكنك تجربة الأمر التالي وإعادة المحاولة:

    
    php artisan view:clear

     

    لقد قمت بذلك الامر يدويا وغيره

     

    بتاريخ 14 ساعات قال عبود سمير:

    هناك عدة أخطاء حيث أن projects هو عبارة عن مُتغير يتم تمريره من المتحكم:

    
    $projects = auth()->user()->projects;

    في الأخير أنت تنادي على العلاقة projects لكن في النموذج User قمت بتسمية العلاقة ب project لذلك يجب تصحيح ذلك لتُصبح العلاقة:

    
    public function projects()
    {
      return $this->hasMany(Project::class);
    }

    أنت لا تقوم بتحديد ماهو المفتاح الثانوي في العلاقة لذلك يجب أن تحترم العُرف و تقوم بتسميته user_id و ليس users_id و في هذه الحالة لديك طريقتين:

    تغيير users_id إلى user_id في كل من ملف التهجير:

    
    $table->foreignId('user_id')->references('id')->on('users')->onDelete('cascade');

    تنفيذ أمر التهجير:

    
    php artisan migrate:fresh

    ثم تغيير الحقل من users_id إلى user_id في مصفوفة fillable في النموذج Project ثم تغيير التابع store في المتحكم ProjectController ليُصبح:

    
    <?php
    public function store(Request $request)
    {
      $data = request()->validate([
        "title" => 'required',
        "description" => 'required',
      ]);
    
      $data['user_id'] = auth()->id();
      Project::create($data);
    
      return redirect('/projects');
    
    }

    و بهذا الشكل ستعمل.

    الطريقة الثانية بترك الحقل كما تريد users_id لكن تحتاج إلى تغيير العلاقة بحيث تُحدد المفتاح الثانوي بهذا الشكل:

    
    public function projects()
    {
      return $this->hasMany(Project::class, 'users_id');
    }

    و بطبيعة الحال تجعل الدالة store بالشكل التالي:

    
    <?php
    public function store(Request $request)
    {
      $data = request()->validate([
        "title" => 'required',
        "description" => 'required',
      ]);
    
      $data['users_id'] = auth()->id();
      Project::create($data);
    
      return redirect('/projects');
    
    }

     

    شكرا.لا اتبعت العرف والطريقة الاولى. 

  10. استغرقت جهدي لحل هذين الخطئين 

    1. عدم دخول البيانات في قاعدة البيانات
    2. الخطأ الوارد في الصورة أدناه طبعا يذهب الخطأ إذا كان داخل الدالة الشرطية 
    @if (is_array($projects) || is_object($projects)) ...

    ولكن تعمل الصفحةجيدا مع المدرب ومن دون الدالة الشرطية لماذا ؟

    myprojects.rar

    122.JPG

  11. بتاريخ 8 ساعات قال Abdullah Muhammad:

    قم بتحميل النسخة الأخيره من node من هنا
    في حالة لم يعمل الأمر معك قم بإتباع الخطوات التاليه 

    1. قم بإنشاء مجلد بإسم "nodejs" في أحد المسارين التاليين "C:\Program Files (x86)"  أو "C:\Program Files"
    2. من قائمة start قم بالبحث عن "edit the system environment variables" وقم بفتحها  
    3. من قائمة Advanced قم بالضغط على Environment Variables
    4. في الجزء العلوي قم بالبحث عن "path" وقم بالضغط عليها سوف تنبثق لك نافذه (مرفق صورة للتوضيح)
    5. قم بالضغط على "New" ومن ثم قم بلص المسار الذي أنشأت فيه المجلد في الخطوه واحد سيكون بالشكل“C:\Program Files (x86)\nodejs” أو “C:\Program Files \nodejs “.
    6. بعد ذلك قم بالضغط على "OK" 

    قم بإستخدام الأمر مرة أخرى وسوف يعمل معك بإذن الله

    image004.png

    شكرا أخي شرحك ينجح

  12. بتاريخ 13 ساعات قال بلال زيادة:

    يجب عليك تنزيل nodejs ثم محاولة تنفيذ الأمر مرة أخرى ولكن بعد إعادة تشغيل الجهاز بعد تثبيت البرنامج.

    ثبت البرنامج ولكن تظهر هذه الاخطاء لماذا ؟

    79.JPG

  13. 65.JPG

    بتاريخ الآن قال Wael Aljamal:

    هل يمكنك مشاركة بنية الجداول لديك؟

    يخبرنا الخطأ أنه يتم محاولة إدخال قيمة في الحقل published أكبر من القيم التي من الممكن تخزينها فيه.

    ولكن يبدو أنه لم يتم تمرير أي قيمة له.

    نعم هذا الي محيرني 

  14. لماذا لا يقبل ملف التعديل على الجدول في حالتي يحمل الاسم (2021_04_05_005931_change_posts_create_table) التعديل مرتين على عمودا وبدل من ذلك يرمي العبارة (Nothing to migrate.) رغم تأكدي من تغيير القيم وإعادة حفظ الملف؟.

  15. هذا الأخطاء معي من يومين استخدمت معه كل الحيل ولم تنفع ورغم حذفي وتنصيني للمشروع و composer و laravel  عدة مرات 

    1. عدم التعرف على المسار رغم تعريفه بطريقة صيحة ويظهر (404
      NOT FOUND)
    2. بعد فترة من البرمجة المستمرة يتجمد المشروع ولا يقبل التعديلات بتاتا رغم محاولات حذف الكاش وإعادة تعيينه

    وغيرها من الاخطاء التي تكتشفها اثناء تشغيل المشروع ولكن هذه أبرزها 

    أطلع على الملف المرفق وأرشدني الى الحل جزاك الله خيرا 

    blog.rar

  16. بتاريخ 5 ساعات قال محمد أيت لعرايك:

    لإعداد نطاق مخصص  في laravel ، تحتاج إلى تهيئة مضيف apache . ولكي تقوم بذلك فأنت تحتاج إلى تحرير ملف “httpd-vhosts.conf”  الموجود بالمسار

    
    C:\wamp\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf

    إدا كنت تستخدم wamp أو

    
     C:\xampp\apache\conf\extra\httpd-vhosts.conf

    إدا كنت تستخدم xamp .

    إفتح الملف وضع الشيفرة التالية:

    
    <VirtualHost *:80>
    DocumentRoot “C:/xampp/htdocs/project-name/public”
    ServerName blog.test
    </VirtualHost>

    أيضًا ، نحتاج إلى تعديل ملف "hosts". الخاص بنظام التشغل ,  إفتح الملف

    
    C:\Windows\System32\drivers\etc\hosts

    ثم ضع هذا السطر في نهايته ثم إحفظه

    
    127.0.0.1 blog.test

    الآن ، افتح WAMP (XAMPP) وأعد تشغيل خادم Apache. في متصفحك ، انتقل إلى blog.test هذه هي الطريقة التي يمكنك بها إعداد مضيف افتراضي في خادم xampp أو wamp لـ laravel.

    تم عمل اللازم السؤال كان على انه لا تعمل الصفحة على النطاق المخصص وتتجمد ولا تشتغل الا على النطاق ...127 بدل blog.test 

    بتاريخ 6 ساعات قال بلال زيادة:

    يبدو انك اخطأت في عمل النطاق الخاص بك على الخادم, ما هو البرنامج الذي تستخدمه.

    لا كان النطاق يعمل قبل ذلك بكل سلاسة 

  17. لماذا تتجمد صفحة لارافيل ولا تعمل الشفرات فيها أبد بالاضافة الى ذلك لا تعد تعمل الصفحة الاى على النطاقhttp://127.0.0.1:8000 وانا اريدها ان تعمل على نطاق مخصص قمت ببرمجته خادم اباتشي عليه وهو blog.test

    53.JPG

×
×
  • أضف...