2011-08-01 11 views

Respuesta

0

Puede usar el pages controller para este fin.

la creación de vistas en APP/views/pages/ con nombres tales como about_us.ctp y contact_us.ctp le permitirá acceder a ellos en la url:

www.site.com/pages/about_us

a continuación, puede cambiar la manera en estos URIs se ven con el enrutamiento.

+0

que he creado y comprobado, .. pero no funciona ... –

+0

¿ha modificado el control de páginas? – raultm

+0

@raultm: no debería tener que modificar el controlador de páginas en absoluto. –

4

Crea un about.ctp en la carpeta /app/views/pages/.

A continuación, agregue Router::connect('/about', array('controller' => 'pages', 'action' => 'display', 'about')); en el archivo /app/config/routes.php. Debería poder acceder al www.yoursite.com/about

+0

He creado el archivo blog.ctp en/app/views/pages/folder. También tengo los comentarios, Router :: connect ('/ blog /', array ('controller' => 'pages', 'action' => 'display', 'blog')); en /app/config/routes.php. Pero todavía no estoy obteniendo la página. –

+0

¿Está recibiendo una página en blanco? – Jack

+0

Seguí tus instrucciones pero no funcionó. Se mostró un error sobre el controlador. En lugar de usar '/ about /' en el primer argumento, use '/ about'. Solo suelta la segunda barra. –

6

Hilo viejo, pero lo encontré al intentar hacer lo mismo en 2.x.

La respuesta de Jack es correcta, con un pequeño error tipográfico. Debe ser

Router::connect('/about', array('controller' => 'pages', 'action' => 'display', 'about'));

Esperamos que esto ayude a alguien más, como a mí.

2

Read more here

Método 1: si desea crear páginas de contenido como sobre nosotros, la política de privacidad que los contenidos pueden ser modificados por una interfaz de administración siga estos pasos

Paso 1: Cambio PagesController

class PagesController extends AppController { 
function beforeFilter() { 
    $this->Auth->allow('content');//to allow to be visible for non-logged in users, if you are using login system 
    parent::beforeFilter(); 
} 
public function content($id = null, $layout = null, $theme=null) { 
    if ($layout) $this->layout = $layout;//if you are using mulitple layouts and themes and want to change it dynamicaly 
    if ($theme) $this->theme = $theme; 

    $this->set('content', $this->Page->find('first', array('conditions' => array('Page.id' => $id)))); 
    $this->Page->id= $id; 
    $this->set('title_for_layout', $this->Page->field('title')); 

} 

}

Paso 2: agregue un contenido de tabla con los campos que necesita como id, título, contenido, imagen, tema, layo ut etc. Paso 3: En Ver/Páginas añadir content.ctp

<div class="row innerPage">  
<div class="col-lg-12 col-md-12 col-sm-12"> 
    <div class="row userInfo"> 
    <div class="col-xs-12 col-sm-12"> 
     <h1 class=" text-left border-title"> <?php echo $content['Page']['title'];?> </h1> 
     <div class="w100 clearfix"> 
     <?php echo $content['Page']['content'];?> 
     </div> 
    </div> 
    </div> 


Sin embargo, puede cambiar html de acuerdo a su necesidad, prefiero marco de arranque.

A continuación, puede utilizarlo como

<?php echo $this->html->link("Terms of Services", array("controller" => "pages", "action" => "content", 5), array("class" => 'themeprimary','target'=>'_blank')) ?> 

Esto generará un enlace yoursite/páginas/content/5. 5 es la identificación de la fila de la que desea mostrar los detalles.

Si quiere su enlace como su sitio/términos, entonces necesita un paso más para completar. En routes.php agrega esta línea.

Router::connect('/terms', array('controller' => 'pages', 'action' => 'content',5)); 

Método 2: sólo hay que mostrar el contenido de la base de datos sin ningún Paso 1: Basta con crear un about.ctp en Ver/Páginas y poner el contenido que desea mostrar Paso 2: Cambiar el PagesController.agregue un método sobre

public function about($layout = null) { 
    $this->set('title_for_layout', 'About');  
} 

Eso es todo.

2

Dado que la nueva versión de cakephp está recién salida, voy a agregar esta respuesta para tratar con la versión más reciente (3.x).

Para vincular a una página estática, aún utiliza el PageController pero el código cambió ligeramente.

Aquí el código que se necesitaría en la versión 3.x

$routes->connect('/about', ['controller' => 'Pages', 'action' => 'display', 'about']); 

Puede leer más sobre el nuevo routing system here.

No tengo ninguna afiliación con cakephp. Agregué esta respuesta desde que encontré esta publicación mientras buscaba cómo hacer esto en 3.0

+0

también funcionó en 2.6 –

Cuestiones relacionadas