اختر من بين الجدول حيث يرتبط الجدول FIELDNAME = 'س' في PHP كعكة

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

  •  06-07-2019
  •  | 
  •  

سؤال

في للكيك، لدي جدولين والبلدان والشبكات. لديهم علاقة HABTM وانضم اليهم countries_networks.

وأنا أحاول الحصول على جميع البلدان من الجدول البلدان التي تكون فيها 'اسم' الميداني في "O2" الشبكات =

ولقد أدركت أنني لا يمكن القيام بذلك باستخدام الاكتشاف الأساسي ()، حتى لقد تم تجريب مع السلوك تحت السيطرة. لقد تمكنت من تقييد البيانات التي تم إرجاعها، ولكن يبدو كما لو "احتواؤه" لا يعمل تماما كما أريد. هيريس قانون بلدي:

$countries = $this->Country->find('all', array('contain' => array(
                                'Network' => array(
                                'conditions' => array('Network.name =' => "o2"),
    )
    )));

وهذا الاستعلام ولكن إرجاع كافة البلدان، وNetwork.name إذا به "O2". ما كنت حقا بحاجة الى القيام به هو العودة فقط في البلدان التي لديها Network.name من "O2"، وليس غيرها.

ويمكن لأي شخص أن تساعد؟ شكرا.

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

المحلول

والاستعلام لبحثك لك بالضبط ما تسأل الخاص بك. محاولة لتحديد من الشبكة.

$countries = $this->Country->Network->find('first', array(
    'conditions' => array('Network.name' => "o2"),
    'contain' => array('Country')
));

$countries = $countries['Country'];

نصائح أخرى

و"= '=>" ما هذا؟ وهناك حاجة لاستخدام "=" رمز بعد "Network.name"

ويجب أن تكون قادرة على القيام بشيء من هذا القبيل:

$this->Country->hasAndBelongsToMany['Network']['conditions'] = array('Network.name'=>'o2');
$myCountries = $this->Country->find('all');

وأنا لم تختبر هذا، ولكن يجب أن تحصل على وثيقة جدا إلى حيث يجب أن تكون.

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

وأنا في طريقي خارج الباب، آسف لذلك لشرح موجز.

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

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