لارافيل ، متغير العمل الناتج مع عرض:: حصة ولكن ليس مع عرض:: الملحن

StackOverflow https://stackoverflow.com//questions/21007892

  •  21-12-2019
  •  | 
  •  

سؤال

أحتاج إلى نفس القائمة في جميع وجهات نظري.

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

للحصول على البيانات لقد حاولت أولا استخدام طريقة العرض::الملحن ولكن دونو لماذا لا أحصل على أي خطأ ، يبدو أن طريقة العرض::الملحن لم يتم تنفيذه على الإطلاق...

إذا كنت تستخدم عرض::حصة ، عملها

// المتحكم الأساسي.بي إتش بي

//function called in the constructor
public function init()
{
    $envs = $this->game->environments()->get();

    View::share('test', $envs);

    View::composer('layouts.base', function($view)
    {
        $view->with('envs', $envs);
    });
}

// قاعدة.غصين

//nothing output here, no error
{% for env in envs %}
         {{ env.name }}
{% endfor %}

//its work
{% for env in test %}
         {{ env.name }}
{% endfor %}

أنا جديد على لارافيل لذا ربما أفتقد شيئا ?

هل كانت مفيدة؟

المحلول

أعتقد أن السبب في أن هذا لا يعمل هو بسبب المكان الذي وضعت فيه ملحن العرض في التعليمات البرمجية الخاصة بك.عرض الملحنين في لارافيل هي في الأساس الاستدعاءات التي يتم تنفيذها بمجرد تقديم العرض.أين هذا init() وظيفة محددة?تخميني هو أن يتم إنشاء طريقة العرض قبل يتم تعريف ملحن العرض الخاص بك-مما يعني أنه لن يتم تنفيذ رد اتصال ملحن العرض أبدا.

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

اقرأ المزيد عن عرض الملحنين هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top