我正在尝试学习代码点火器库和面向对象的PHP,并且有一个问题。
我已经制作了一个加载我数据库中所有行的页面,并且在那里,我正在回显一个锚标记,它是以下结构的链接。
echo anchor("videos/video/$row->video_id", $row->video_title);
所以,我有一个名为Videos的类,它扩展了控制器,在该类中有索引和视频,这是正确调用的(当你点击视频标题时,它会发送给你的视频/视频/ 5) ,5是我正在使用的表的主键。
所以基本上我要做的就是将5传递回控制器,然后让特定的视频页面输出视频表中的特定行数据。我在视频控制器中的功能如下所示:
function video()
{
$data['main_content'] = 'video';
$data['video_title'] = 'test';
$this->load->view('includes/template', $data);
}
所以,基本上测试应该是测试,而不是测试,一个查询的返回值,表示在“视频”表中,video_id
"5"
的行,并使{{{ 1}}等于数据库中$data['video_title']
的值...
现在应该知道这个但是没有,任何帮助都会受到赞赏!
答案 0 :(得分:0)
您需要了解URI Class如何运作
基本上:
$default_url_args = array('video');
$url_args = $this->uri->uri_to_assoc(3,$default_url_args);
$video_UID = $url_args['video'];
然后像
$the_video = $this->videos_model->get_video_by_UID($video_UID);
答案 1 :(得分:0)
您可以使用URI类,也可以执行以下操作:
function video($video_id)
{
$data['main_content'] = $this->videoprovider->get_video( $video_id );
$data['video_title'] = 'test';
$this->load->view('includes/template', $data);
}
换句话说,对于扩展Controller的类中的函数,您可以向这些函数添加参数,CI将自动传入URI项以便这些参数。
function generic_function_in_controller($item1, $item2, ...)
{
// would receive as: http://example.com/controller/generic_function_in_controller/item1/item2
}
答案 2 :(得分:0)
我不知道我是否已经太迟了但也许这可以解决你的问题...... 把它放在你的视频()函数
中data[$query] = $this->db->query("SELECT * FROM videos WHERE video_id = 5");
然后在你的video_view文件中......
if ($query->num_rows() > 0)
{
$row = $query->row_array();
echo $row['title'];
echo $row['something'];
echo $row['somethingElse'];
}
这是一个很好的资源:http://codeigniter.com/user_guide/database/index.html
希望有所帮助...
并请有人编辑这个问题,因为它太难读了......