datamapper를 사용하여 데이터베이스에 file_name을 저장하고 저장하려고합니다. 처음에 Codeigniter 매뉴얼에 주어진 do_upload의 기본 예제를 사용하여 끝냈습니다. idama와 url이있는 간단한 테이블을 보려고 datamapper의 3 행을 썼습니다. 나는 그것을 실행하고 그것을 잘 저장합니다.Codeigniter & Datamapper : 업로드 된 이미지를 데이터베이스에 저장하는 것이 작동하지 않습니다.
내 add_article 메서드에서 do_upload 함수를 호출하려고 할 때 문제가 발생합니다. 기사가 업로드 된 이미지 이름과 기사의 모든 세부 정보를 저장하기 위해 이미지와 함께 업로드 될 때입니다. 그러나 그것은 작동하지 않으며 모든 종류의 유형을 시도합니다. 내 컨트롤러에서
:
public function add_article($id = NULL)
{
$articles = new Article_model();
$article = $articles->where('id', $id)->get();
$article->title = $this->input->post('title');
$article->text = $this->input->post('text');
// Try to upload the image
if ($this->input->post('submit'))
{
$this->do_upload();
}
if ($article->save())
{
echo '<p>You have successfully added an article</p>';
redirect('admin/article/');
}
else
{
echo '<p>' . $article->error->string . '</p>';
}
}
public function do_upload()
{
$config = array(
'allowed_types' => 'jpg|jpeg|gif|png',
'upload_path' => $this->gallery_path,
);
$this->load->library('upload' , $config);
$this->upload->do_upload();
$image_data = $this->upload->data();
$article = new Article_model();
$article->url = $image_data['file_name'];
$article->save();
}
내보기 :
<?php echo form_open_multipart('admin/article/add_article'); ?>
<table class="table">
<tr>
<td>Title</td>
<td><?php echo form_input('title', set_value('title', $article->title)); ?></td>
</tr>
<tr>
<td>Image</td>
<td><?php echo form_upload('userfile'); ?></td>
</tr>
<tr>
<td>Body</td>
<td><?php echo form_textarea('text', set_value('text' , $article->text), 'class="tinymce"'); ?></td>
</tr>
<tr>
<td></td>
<td><?php echo form_submit('submit', 'Save', 'class="btn btn-primary"'); ?></td>
</tr>
</table>
무엇이 오류입니까? – mituw16
나는 오류가 없으며, file_name은 데이터베이스에 들어 가지 않습니다. ( – Unsparing
당신의'do_upload' 함수에서 당신이 새로운'Article_Model'을 인스턴스화하고 있기 때문에 그걸 업데이트하는 것이 아닌가 의심 스럽습니다. 이전에 삽입 한 코드를 변경하십시오. 내 대답을 넣을 코드를 변경하십시오. – mituw16