У меня есть две таблицы в моей базе данных, form_settings
и webmaster
, которые находятся в отношениях "один ко многим", и это было определено в их моделях.
FormSettings.php
class FormSettings extends \Phalcon\Mvc\Model
{
public function initialize()
{
$this->hasMany('db_table', 'webmaster', 'db_table');
}
}
Webmaster.php
class FormSettings extends \Phalcon\Mvc\Model
{
public function initialize()
{
$this->belongsTo('db_table', 'form_settings', 'db_table');
}
}
В моем контроллере я выполняю следующее find()
и передаю его в представление:
ControllerBase.php
class ControllerBase extends Controller
{
public function initialize()
{
$exhibitions = FormSettings::find(
array(
'form_type = "v" AND show_end_date > NOW() AND archived = "n"',
'order' => 'db_table'
)
);
$this->view->exhibitions = $exhibitions;
}
}
И я знаю, что он правильно связывает строки из моей таблицы webmaster
, так как у меня есть следующий код в моем представлении, и он отображает значения webmaster_id
:
индекс.вольт
{% for exhibition in exhibitions %}
<li>
{{ link_to('index/browse/' ~ exhibition.db_table, exhibition.db_table) }}
<!-- testing below -->
{% for webm in exhibition.webmaster %}
{{ webm.webmaster_id }}
{% endfor %}
<!-- end testing -->
</li>
{% endfor %}
Мой вопрос состоит из трех частей:
- Как я могу только связать
webmaster
строк, в которых столбецextra_1
не являетсяNULL
? - Как я могу
count()
связатьwebmaster
строк для каждогоdb_table
(уникального вform_settings
)? - Как я могу передать эту информацию в представление в моем объекте
$exhibitions
, чтобы я мог повторить синтаксисcount()
в вольтах?