2012-03-28 2 views
0

Я изучаю Yii Framework. Я следующие thisУчебник Yii Framework - файл не найден

Учебное пособие. Я выполнил все шаги и загружаю индексную страницу. На моей странице index.php я указываю на двух страницах, расположенных в

защищаемой/просмотров/сообщение

Ниже приведен код в моем index.php находится в папке сообщений, упомянутых выше.

<html> 
<body> 
    <h1>Welcome</h1> 
    <p> To view our message go to... <?php echo CHtml::link('Here', '/message/show')?> </p> 
    <p> To edit our message go to... <?php echo CHtml::link('Here', '/message/edit')?> </p> 
</body> 
</html> 

«сообщение» - это идентификатор, который я дал при создании модели и контроллера через приложение оболочки yii.

Проблема заключается в том, после вышеуказанных нагрузок страниц, и я нажимаю на любом из указанных выше адресов, он указывает на

«локальный: 8080/сообщение/шоу»

и

"локальный: 8080/сообщение/редактирование"

, в то время как реальное расположение этих файлов

"локальный: 8080/тест/защищенный/вид/сообщение/..."

Что я могу делать неправильно?

+0

Я думаю, вам нужно больше узнать о философии MVC - http://stackoverflow.com/questions/8553988/mvc-books-tutorials-about-php –

ответ

2

Вы должны использовать array() в качестве второго параметра:

<?php echo CHtml::link('Here', array('/message/show'))?> 

Проверить normalizeUrl, чтобы понять это. Приветствия.

+0

Спасибо :), поэтому всякий раз, когда тип данных «смешанный», я использую массив? –

+0

Это «смешанное» в документации означает, что параметр может быть либо «string», либо «array». Поэтому, когда вы хотите вызвать действие контроллера, лучше использовать и массив («контроллер/действие»), чем простой «контроллер/действие» строки, чтобы избежать конфликтов на маршруте. – Puigcerber

+0

Еще раз спасибо ... @Puigcerber еще один вопрос. Каковы эти возможные конфликты? –

2

Просто прочитал Yii tutorial, это действительно хорошо. Тема о URL Managment подходит по вашему вопросу, вы можете найти ответы. (кстати, у Yii есть только одна точка входа - index.php, нет прямого доступа к файлам в «защищенной» папке, защищенная папка должна быть защищена :) urlManager выполняет специальную работу для запросов маршрутизации)

+0

Спасибо! Таким образом, доступ к любой другой странице должен осуществляться через структуру? –

+0

+1 для ссылки управления URL-адресами – nepsdotin

Смежные вопросы