그래서 파일 업로드 기능을 작성하기 전까지 DB 필드가 많은 부분을 수정하지 않고 업데이트했기 때문에 조금 이상합니다. 이제 데이터베이스가 업데이트되는 것 같지 않지만 파일 업로드가 작동합니다. 모든 것은 단순히 관리 형태의 XML 파일에 적절한 이름을 지정하여 등, 잘 업데이트, 삽입 될 듯 : 내가 읽은 것을, 나는 데이터베이스 업데이트 논리를 작성해야Joomla MVC 구성 요소 - 파일 업로드로 데이터베이스 레코드 업데이트
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset>
<field
name="course_id"
type="hidden" />
<field
name="course_name"
type="text"
label="Course Name: "
description="Full name of the course (up to 255 characters)"
default="" />
<field
name="course_dept"
type="text"
label="Course Department: "
description="4 character department code. Examples: BIOL, CREL, CHEM"
default="" />
<field
name="course_code"
type="text"
label="Course Code: "
description="4 digit course code which immediately preceeds department code"
default="" />
<field
name="course_desc"
type="textarea"
label="Course Description: "
rows="10"
description="As seen in the academic calendar"
default="" />
<field
name="course_graphic_url"
type="file"
label="Course Graphic: "
description="Graphical representation of the course"
accept="image/*" />
</fieldset>
</form>
에서. 이전에 일하는 것 같았던 것은 이상한 일입니다. 이제 Joomla MVC 구성 요소 개발에 익숙하지 않아 어쩌면 내가 알지 못하는 한 몇 줄의 코드를 복사/붙여 넣을 수 있습니다.하지만 의심 스럽습니다. 여기에 내가 시도한 것이 있지만 어딘가에 떨어지는 것처럼 보입니다. 이 /admin/controllers/course.php입니다 :
<?php defined('_JEXEC') or die;
jimport('joomla.application.component.controllerform');
class CourseListControllerCourse extends JControllerForm {
protected $view_list = 'CourseList';
function save($key = null, $urlVar = null){
// ---------------------------- Uploading the file ---------------------
// Neccesary libraries and variables
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');
$jinput = JFactory::getApplication()->input;
$files = $jinput->files->get('jform');
$filename = $files['course_graphic_url']['name'];
$folder = JPATH_SITE . "/" . "images" . "/" . "courselist";
// Create the folder if not exists in images folder
if (!JFolder::exists($folder)) {
JFolder::create($folder, 0777);
}
$src = $files['course_graphic_url']['tmp_name'];
$dest = JPATH_SITE . "/" . "images" . "/" . "courselist" . "/" . $filename;
if (isset($files['course_graphic_url'])) {
JFile::upload($src, $dest);
}
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$cid = $jinput->get('course_id');
$fields = array($db->quoteName('course_graphic_url') . " = " . $db->quote($dest));
$conditions = array($db->quoteName('course_id') . " = " . $cid);
$query
->update($db->quoteName('#__courselist'))->set($fields)->where($conditions);
$db->execute($query);
return parent::save($key = null, $urlVar = null);
}
}
다행스럽게도 필자가 제공 한 충분한 정보 .. 나는 여전히 말을 열심히 그래서 주말 모드에 갇혀있어 : 사전에 P 감사!
편집 : 편집 페이지에있을 때 나타나는 url 변수는 저장 버튼을 클릭 할 때까지 전달할 수 없음을 알았습니다. 나는 값으로 숨겨진 입력 필드를 만들려고했는데, 오늘은 세상에있는 모든 것을 고칠 것이라고 기대했지만 운이 없었습니다.
나에게 이상한 점은 다른 모든 DB 필드가 추가 SQL이 필요없이 제대로 업데이트된다는 것입니다. 해당 필드가 해당 양식 필드의 값으로 갱신되었습니다. 나는 지금 바로 죄송합니다.
[줌라 스택 교환 (http://joomla.stackexchange.com)에 이상 질문을 물어보십시오) – Lodder
나는 것 확인! 고마워요 :) – dustaMaphone