Я только что создал модель и CRUD для базы данных mysql.Yii CRUD Индексные элементы фильтрации по позиции db
CREATE TABLE IF NOT EXISTS `issue` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`description` text NOT NULL,
`priority` varchar(255) DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`user` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT;
Это все хорошо и денди, но люди могут видеть список друг друга на г = выпуск/индекса index.php?. Я не хочу, чтобы это произошло, я хочу отфильтровать список индексов для поиска всех сообщений пользователя и показывать только его сообщения.
Как я могу это сделать?
EDIT1:
Это _view, где список получает показано всем:
<?php
/* @var $this IssueController */
/* @var $data Issue */
?>
<div class="view">
<b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('title')); ?>:</b>
<?php echo CHtml::encode($data->title); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('description')); ?>:</b>
<?php echo CHtml::encode($data->description); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('priority')); ?>:</b>
<?php echo CHtml::encode($data->priority); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('status')); ?>:</b>
<?php echo CHtml::encode($data->status); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('user')); ?>:</b>
<?php echo CHtml::encode($data->user); ?>
<br />
</div>
EDIT2:
Я вставил код, приведенный ниже, но я получаю если у меня есть действующий пользователь, у которого есть сообщение:
<b><?php echo CHtml::encode($data->findAll('user LIKE \''.Yii::app()->user->name.'\'', array('title'=>$data->title))); ?>:</b>
<?php echo CHtml::encode($data->findAll('user ='.Yii::app()->user->name, array('title'=>$data->title))); ?>
<br />
Ошибка:
htmlspecialchars() expects parameter 1 to be string, array given
EDIT3:
Я просто понял, что моя логика не так, если пользователь имеет более чем 1 сообщение это не будет делать, мне нужно использовать Еогеасп для извлечения значения и эхо их, но все же не уверены, как это сделать.
EDIT4 решаемые IT
Вот мой новый _view:
<?php $foundAll=$data->findAllByAttributes(array('title'=>$data->title, 'description'=>$data->description, 'priority'=>$data->priority, 'status'=>$data->status, 'user'=>Yii::app()->user->name));//,'user LIKE '.'\''.Yii::app()->user->name.'\'');
//then you need use like
foreach($foundAll As $found)
{
echo "<b>".$data->getAttributeLabel('id')."</b>: ";
echo CHtml::link(CHtml::encode($found['id']), array('view', 'id'=>$found['id']));
echo "<br />";
//here you need to use array, like this $found['userId'].
echo "<b>".$data->getAttributeLabel('title')."</b>: ";
echo "".$found['title']."";
echo "<br />";
echo "<b>".$data->getAttributeLabel('description')."</b>: ";
echo "".$found['description']."";
echo "<br />";
echo "<b>".$data->getAttributeLabel('priority')."</b>: ";
echo "".$found['priority']."";
echo "<br />";
echo "<b>".$data->getAttributeLabel('status')."</b>: ";
echo "".$found['status']."";
echo "<br />";
}
?>
findByAttributes (массив ('пользователь' => 'hisName') ?? http://www.yiiframework.com /forum/index.php/topic/21178-findbyattributes-example/ –
Я немного потерял место для его вставки, по индексу это то, где он вызывается: ' widget ('zii.widgets.CListView', array ( \t 'dataProvider' => $ dataProvider, \t 'itemVi ew '=>' _ view ', )); ?> ' –