Я попытался закодировать идентификатор журнала в URL-адресе приложения Code Igniter и получить его в моем контроллере. Моя конечная цель получить доступ к странице http://mysite.com/journal/3
и получить доступ к странице, содержащей сведения о журнале с ID 3.Как отправить данные в индексный метод контроллера воспламенителя кода?
В моем файле контроллера journal.php, у меня есть
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Journal extends Controller {
public function index($journalId) {
$data['journalId'] = $journalId;
$this->view->load('journalPage', $data);
}
}
?>
В моей journalPage.php просмотреть файл, у меня есть
This event has ID <?= $journalId ?>.
Я написал это правило в файле routes.php.
$route['journal/(:num)'] = 'journal/$1';
Вот файл .htaccess в моей общей папке html.
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
</IfModule>
Однако, когда я перехожу на mysite.com/journal/3, я получаю ошибку 404. Зачем?
У вас есть .htaccess файл? Если нет, вам нужно будет получить доступ к сайту через его индексную страницу: 'mysite.com/index.php/journal/3' – rjz
У меня есть файл .htaccess. Работают контроллеры без данных, закодированных в URL (и методы которых не принимают параметры). Кроме того, не работают ни 'mysite.com/journal/3', ни' mysite.com/index.php/journal/3'. Интересно, что работает 'mysite.com/journal /'. Тем не менее, текст отображается как «Это событие имеет идентификатор» без фактического идентификатора события. –
Вы определили правило на своих маршрутах.php? – safarov