В настоящее время у меня есть таблица users
и таблица posts
. В таблице моих сообщений есть поле для user_id
, однако я не уверен, как бы захватить пользователей name
, которое находится в таблице users
. Я думал об использовании метода afterFind()
, а затем с помощью SQL для выбора данных, но должен быть лучший способ, чем это. Кроме того, на мой взгляд, я использую функцию read()
для захвата одного сообщения. Могут ли модели afterFind()
вступить после запуска read()
? Если нет, существует ли такой эквивалент, как afterRead()
?В CakePHP есть ли лучший способ выбрать имя пользователя?
0
A
ответ
2
Просто создайте ассоциацию Post принадлежит пользователю, и всякая регулярная операция поиска/чтения, имеющая достаточно высокое значение recursive
, автоматически выберет пользователя с каждым сообщением.
$post = $this->Post->find(...);
echo $post['User']['name'];
0
вы должны идти, как показано ниже:
$this->Cake->findById(7); Cake.id = 7
здесь, вы можете использовать user_id вместо 7, как ..
0
$this->Post->bindModel(array('belongsTo'=>'User'));
$post = $this->Post->findById($post_id);
$userName = $post['User']['name'];
Здесь являются ошибки, я набрал его в eclipse (:
Это так сексуально! – Strawberry
Я бы использовал 'echo h ($ post ['User'] ['name'])' - по соображениям безопасности! всегда избегайте выхода. – mark
Интересно, я никогда не слышал о выходе выхода. Я только слышал об экранировании ввода, но, думаю, это имеет смысл. Однако, если бы у меня были жесткие ограничения на мой вход, тогда мне не нужно было бы сбегать для выхода прямо? – Strawberry