10/10/2018, 10:34

Xét View trong joomla

Mình bị vẫn đề như zầy Mình đang viết cái controller như sau

defined('_JEXEC') or die('Restricted Access.');
jimport('joomla.application.component.controller') ;
class RegistryController extends JController{
function display(){
$document = &JFactory::getDocument();
$viewName = JRequest::getVar('view','registry');
$viewtype = $document->getType();
$view = &$this->getView($viewName,$viewType);
$view->setLayout('default');
$view->display();
}
}
khi mình viết như zầy thì chạy

defined('_JEXEC') or die('Restricted Access.');
jimport('joomla.application.component.controller') ;
class RegistryController extends JController{
function display(){
/*
$document = &JFactory::getDocument();
$viewName = JRequest::getVar('view','registry');
$viewtype = $document->getType();
$view = &$this->getView($viewName,$viewType);
$view->setLayout('default');
$view->display();
*/
parent::display();
}
}
mặc dù mình đã tảo ra thư mục views/registry có view.html.php và thư mục tmpl có file default.php

mình để mạc định không xét giá trị view thì nó chạy ok. nhưng mà khi xét view thì nó hog chạy. mình không hiểu. mong các bạn giúp.

component của mình có tên là com_registry và mình đang viết trong front and.
chameron viết 12:49 ngày 10/10/2018
xem lại tên có đúng là registry ở controller , view , cả khai báo class nữa
chứ em chạy đoạn code đầu tiên bình thường mà
honnhienh viết 12:49 ngày 10/10/2018
Mình đã tảo folder là registry trong folder views tương ứng với giá trị mặc định của view khi chạy mình gán nó $viewName = JRequest::getVar('view','registry') rùi. Bạn chạy được hay qua. Mình tảo thấy đúng rùi mà đây là cái hình thu mục của mình nè.



nó bị lỗi ngay chỗ $view = &$this->getView($viewName,$viewType);

hai biến này lần lượt giá trj là registry và html mà. hog biết sao nó hog chạy.
chameron viết 12:46 ngày 10/10/2018
ông nội này
đề nghị viết đúng chính tả nhớ ~.~

$viewtype = $document->getType();
$view = &$this->getView($viewName,$viewType);
honnhienh viết 12:37 ngày 10/10/2018
ac ac bị lỗi này mới sợ chứ hịc. Hồi giờ toàn ctr+spacebr hông mà.

thank bác cái nha.

[=========> Bổ sung bài viết <=========]

Nhân Tiện hỏi các bác luôn. Làm cách nào để hiện các giá trị ở form khi mà mình gửi lên sever nhưng giá trị đó không hợp lệ lên quay lại form cũ thì giá trị vừa điền vẫn còn.
chameron viết 12:35 ngày 10/10/2018
lưu nó lại và gán ngược lại
viết ở view.html.php
$post = JRequest::get('post');
$this->assignRef('post',$post);

ở tmpl thì cứ input nào thì nhét value = $post tương ứng
honnhienh viết 12:44 ngày 10/10/2018
ơh ha. tại cũng đang tính dùng cái session giống như làm bình thương lưu nó vào session. thấy joomla nó có nguyên cái thư viện dùng cho session. thôi làm theo cách của bác chameron cho nhàn.

tái bút. không hiểu lắm khi gửi lên thì nó chạy vô controller rùi phải đứng ở controler JRequest::get() giá trị chứ. rùi từ control truyền sang -> view sao (thông cảm cái này còn hơi yếu không hiểu lắm)
chameron viết 12:37 ngày 10/10/2018
chắc chắn phải gọi trang từ lần thứ 2 mới có các giá trị
controller : function display() -> view : function display()
muốn in cái gì ra thì đều phải gọi function display(),
thế mình get post ở đâu cũng được miễn là trước cái display ở view cụ thể là display() trong view.html.php
hok biết chính xác ko , bác cứ thử ở cả view cả controller cái nào được thì dùng
honnhienh viết 12:45 ngày 10/10/2018
thank bác. đang thử. ở cái cỏntol thì get được rùi còn cái kia thì chưa
chameron viết 12:35 ngày 10/10/2018
làm sao lấy được và gửi lại xuống view là được , ko cần phải cứng nhắc đâu bác
nhiều lúc gọi view trong controller để assign value sang mà lúc được lúc ko, bực mình vãi lúa
Bài liên quan
0