私はthis oneと同様のことに取り組んでいます。しかし、誰かがグループに参加しているかどうかに基づいて、 "Join"または "Enter"ボタンを割り当てようとしています。問題は、カテゴリID($cats_id
)の変数をビューファイルに渡す方法がわからないことです。mvc(PHP)のビューからモデルに変数を渡すには
モデルに、行が存在し、trueを返す関数を作成しました。
// check if joined the group
public static function checkIfJoined($cats_id)
{
$database = DatabaseFactory::getFactory()->getConnection();
$users_id = Session::get('user_id');
$sql = "SELECT cats_id,users_id FROM categories_joined WHERE users_id = :users_id AND cats_id = :cats_id";
$query = $database->prepare($sql);
$query->execute(array(':users_id' => $users_id, ':cats_id' => $cats_id));
// fetchAll() is the PDO method that gets all result rows
if ($query->rowCount() >= 1 || Session::get('user_account_type') == 7) {
return true;
}
}
次に、コントローラーでモデルをビューにレンダリングします。
public function index()
{
$cats_id = ""; // this doesn't work right obviously
$this->View->render('dashboard/index', array(
'categories' => DashboardModel::getAllCategories(),
'joined' => DashboardModel:: checkIfJoined($cats_id)
));
}
私は変数をプレビュー関数 'categories'から渡します。
<?php if ($this->categories) { ?>
<?php foreach($this->categories as $key => $value) { ?>
...
<?php $cats_id = $value->cat_id; if ($this->joined == true): ?>Enter
<?php else: ?>Join
<?php endif; ?>
ビューからコントローラにデータを渡そうとしていますか? – BugHunterUK