我正在尝试通过表单将图像上传到我的网站,但是(而不是让数据库陷入困境)只是将图像的位置存储在数据库中更有效率.
我的表格有问题,真的不知道去哪里:
<?=form_open('bro/submit_new');?>
//other form data
Image: <input type="file" name="image" size="20" /> <br>
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
现在表单本身工作正常,问题是它试图将图像存储到数据库字段'image'(类型为TEXT).告诉它只存储文件,并将文件位置存储在"图像"字段中的最简单方法是什么?(我告诉它通过控制器上传文件的位置).
谢谢
编辑:控制器代码(对于此部分):
function submit_new(){
$config['upload_path'] = './images/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '2000';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
$this->db->insert('post', $_POST);
redirect('bro');
}
Run Code Online (Sandbox Code Playgroud) CodeIgniter允许通过以下方式访问POSTed数据:
$this->input->post('input_name');
Run Code Online (Sandbox Code Playgroud)
其中'input_name'是表单字段的名称.这适用于静态表单,其中每个输入名称都是提前知道的.
在我的例子中,我正在从数据库中加载一组键/值对.表单包含每个键/值对的文本输入.
我想知道,有没有办法通过CodeIgniter api获取一系列发布的数据?
谢谢!
我想我可能会以错误的方式接近这一点,所以我将不胜感激任何意见/指导.希望我能够连贯地解释我想要实现的目标:
我想创建一个HTML块(例如一个包含用户配置文件的框),我将在我生成的大多数页面上将其作为布局的一部分加载.
我还希望能够从单独的URL中自行重新生成此框中的内容.这样我就可以通过AJAX调用来更新该框.
我不想复制创建此HTML的代码.
我很欣赏我可以使用AJAX调用初始加载此框,但在我看来,这会给服务器添加一个不必要的调用?
我认为我可以这样做的方法是在我的控制器中使用一个方法来渲染这个HTML块,但是如何在另一个控制器/视图中请求此方法的输出?
你会怎么做?
提前致谢
我目前在使用PHP时使用CodeIgniter作为我的首选框架.我正在努力解决的一个问题是"页面"的概念,以及如何在MVC中正确表示.据我所知,CodeIgniter有一个前端控制器,它委托给页面控制器.在我的思考过程中,每个页面都有自己的控制器.我经常看到有人使用填充了许多方法的页面控制器.所以在这个意义上,每个动作都成为它自己的页面.
我从来没有真正喜欢将许多方法填充到一个控制器中的想法,因为如果你一次只需要一个或两个方法,那么似乎会有太多的开销.每个页面拥有自己的控制器似乎更合理,并且操作只对应于您可以在该特定页面上执行的操作.我是否以错误的方式思考这个问题?
更令人困惑的是,我会注意到在一些Web应用程序中,他们将有一个控制器,它将有多种方法(即登录,注册,查看,编辑等),但在其他人实际上他们实际上有一个登录控制器,和寄存器控制器."页面控制器"的正确用法是什么?
在CodeIgniter中,或核心PHP; 是否有相当于Rails的视图部分和模板?
部分会让我在视图中渲染另一个视图片段.我可以有一个共同的navbar.php观点,我可以指向我的homepage.php观点.模板将在一个位置定义HTML页面的整体shell,并让每个视图只填充正文.
我在CodeIgniter文档中找到的最接近的东西是加载多个视图,其中在控制器中按顺序呈现多个视图.在控制器内部控制我的页面的视觉外观似乎很奇怪.(即移动导航栏我的设计师必须编辑控制器).
我一直在寻找堆栈溢出的PHP方法来实现这一目标.我找到了这个页面,它讨论了用ob_start模拟部分.这是CodeIgniter中推荐的方法吗?
我是PHP/MySQL的新手,也是CodeIgniter的新手.我在许多MySQL表中都有信息.我想用JOIN检索它,其中表主键等于$ variable ...我怎么能这样做并获得没有主键字段的所有字段???
我现在正在做的是这里(这里只有两个表加入):
function getAll($id) {
$this->db->select('*');
$this->db->from('movies');
$this->db->join('posters', 'movies.id= posters.id');
// WHERE id = $id ... goes here somehow...
$q = $this->db->get();
if ($q->num_rows() == 1) {
$row = $q->row();
$data = array(
'id' => $row->id,
'title' => $row->title,
'year' => $row->year,
'runtime' => $row->runtime,
'plotoutline' => $row->plotoutline,
'poster_url' => $row->poster_url
);
}
$q->free_result();
return $data;
Run Code Online (Sandbox Code Playgroud)
id(PK),title,year,runtime和plotoutline是第一个表中的列,poster_url是来自第二个表的字段.第二个表还包含一个我不想检索的ID(PK)列,因为我已经有了.
我不知道这是否适合这样的问题.如果没有,抱歉搞乱:/
我已经使用Codeigniter一段时间了,我已经建立了自己的cms(用于我的所有项目)和许多模块(新闻,图片上传等),我可以很好地做我的工作......但我一直想要Zend Framework.我之所以选择Codeigniter是因为时间问题.当我决定为我的余生使用一个框架时,我的项目时间非常紧张.而且由于学习时间很短,我选择了CodeIgniter.我现在真的很高兴.但我无法理解Zend!
我的问题是,为Zend提供认真的学习时间真的值得吗?我已经非常忙于项目,我将不得不牺牲我的休息时间,晚上睡觉少学习等等.我将需要用Zend从零开始构建我的cms和所有其他模块.
是不是真的值得吗?你怎么看待Zend对于一个已经认识Codeigniter的人来说有多难?
非常感谢!
我知道使用PHP框架的好处(不是第一手,只是通过阅读SO等)但我没有听到的是框架所需的"学习"量.使用框架时,您可以将控制权交给新框架,您必须"忘掉"许多内容,并按照新框架的要求重新学习它们.这是真的吗?当涉及到这种学习方面时,哪个框架最灵活?
我想通过fieldx*fieldy订购结果,例如:
第1行:fieldx = 10 fieldy = 10总计:100
第2行:fieldx = 11 fieldy = 5总计:55
第1行必须首先出现.无法找到任何相关信息.这是一个codeIgniter项目,所以如果有一个解决方案,我很高兴.
谢谢!
我仍然是代码点火器的新手,我在登录系统工作时遇到了问题.
当我使用Firefox时,登录始终有效.登录始终适用于某些IE7浏览器,但在其他IE7浏览器上始终失败.
在跟踪代码时,我看到models/redux_auth_model.php确实成功验证了用户,它将用户信息写入$ this-> session-> set_userdata(),并将它们重定向到我选择的成员页面.这是代码:
public function login($identity = false, $password = false)
{
$identity_column = $this->config->item('identity');
$users_table = $this->tables['users'];
if ($identity === false || $password === false || $this->identity_check($identity) == false)
{
return false;
}
$query = $this->db->select($identity_column.', email, password, group_id')
->where($identity_column, $identity)
->where('active', 'Active')
->limit(1)
->get($users_table);
$result = $query->row();
if ($query->num_rows() == 1)
{
//$password = $this->hash_password_db($identity, $password);
if (!empty($result->activation_code)) { return false; }
if ($result->password === $password)
{
$this->session->set_userdata($identity_column, $result->{$identity_column});
$this->session->set_userdata('email', $result->email);
$this->session->set_userdata('group', $result->group_id);
return true; …Run Code Online (Sandbox Code Playgroud)