Yii中的等效代码是什么?
while($row = mysql_fetch_assoc)
{
echo $row['id']." ".getSkillById($row['skillId']);
}
function getSkillById($id)
{
$sql = mysql_query("select * from `skills` WHERE id = '$id'");
$res = mysql_fetch_assoc($sql);
return $res['skill_label'];
}
如何在yii中实现某些内容?
这是标准程序吗?
答案 0 :(得分:2)
ActiveRecord
approche:
首先,使用GII
创建模型。例如,您的模型名称为:Skill
。现在:
$skills=Skill::findAll();
if(!is_null($skills)){
foreach($skiils as $skill){
echo $skill->id;
}
}
通过ID获得技能:
$skill=Skill::findByPk($id);
$skill->id; // Gets the skill ID
哇,你不知道Yii的AR
支持Relations
吗?假设您有一个User
表,每个用户都有一个技能ID。因此,您必须创建User
模型。然后在您的用户模型的relation()
方法中,您必须写:
array('skill'=>array(self::HAS_ONE,'Skill','skill_id'));
以上都基于假设。 (因为您的问题很小)。现在,您可以通过以下方式访问您的用户及其技能:
$users=User::findAll();
if(!is_null($users)){
foreach($users as $user){
echo $user->id; // USER IS
echo $user->skill->id; // USER SKILL ID
}
}
另一种方法是使用Yii's query builder
,如下所示:
$db=Yii::app()->db;
$skills=$db->createCommand('SELECT * FROM tbl_skills')->queryAll();
// A LOOP
// foreach($skills as $skill) -> now the result is an associate array.
作为建议,请先仔细阅读Yii的ORM
(AR
)和Yii的Query Builder
。找到有用信息的最佳地点是Yii的官方文件: