2016-06-24 8 views
0

Ich habe derzeit ein Routing-Problem mit dem fettfreien Rahmen. Nachdem ich mich umgesehen und die Dokumentation gelesen habe, konnte ich es bisher nicht lösen, obwohl es ein einfaches Problem zu sein scheint.Fettfreie PHP ungültige Route

ich f3 Standard Routing-Format aus dem Stammverzeichnis mit:

$f3->route(array('GET /', 'GET /index.php'), function($f3) { 
    include 'header.html'; 
    include 'Home/index.html'; 
    include 'footer.html'; 
}); 

//search 
$f3->route('GET /Browse', function() { 
    include 'Browse/index.html'; 
}); 

Diese Routen beide arbeiten korrekt und wie erwartet. Wenn ich localhost auf xammm eingebe, geben beide die skizzierten Seiten zurück. Beide haben eine Strukturdatei:

-Root 
-index.php 
-header.html 
-footer.html 
--Browse 
---index.html 

Nachdem eine neue Route definieren, ich möchte nicht einen Ordner mit einer Datei index.html haben und stattdessen reagieren, indem sie html Echo.

Error 404 : Not found 

Meine Frage ist, wie kann ich eine Antwort direkt von PHP ohne einen nachfolgenden Ordner mit ermöglichen:

$f3->route('GET /Latest', 
    function() { 
     include 'submit/index.html'; 
     echo 'This is our home page.'; 
    } 
); 

Wenn ich den obigen Code verwenden, und localhost gehen zu/Latest Ich bin mit präsentiert und index.html Datei.

Danke und viele Grüße :)

Antwort

1

Sie suchen wahrscheinlich für den Rahmen template engine.

Es gibt verschiedene Möglichkeiten, um Ihren Code zu strukturieren, aber hier ist ein schnelles einfaches Beispiel:

// index.php 

$f3->UI='templates/'; 

$f3->route('GET /home',function($f3){ 
    $f3->main='home.html'; 
    $f3->title='Homepage'; 
    $tpl=Template::instance(); 
    echo $tpl->render('layout.html'); 
}); 

$f3->route('GET /contact',function($f3){ 
    $f3->main='contact.html'; 
    $f3->title='Contact us'; 
    $f3->address='5578 Grant Street Woodbridge, VA 22191'; 
    $tpl=Template::instance(); 
    echo $tpl->render('layout.html'); 
}); 
<!-- templates/layout.html --> 
<!DOCTYPE html> 
<title>{{ @title }}</title> 

<body> 
    <include href="header.html"/> 
    <main> 
    <include href="{{ @main }}"/> 
    </main> 
    <include href="footer.html"/> 
</body> 
<!-- templates/home.html --> 
<h1>Hey hey! Welcome home!</h1> 
<!-- templates/contact.html --> 
<h1>Our address</h1> 
<p>{{ @address }}</p> 

Wie für die 404-Fehler, Achte auf deine .htaccess Datei ist korrekt konfiguriert, insbesondere die RewriteBase Direktive. Wenn dies nicht der Fall ist, wird jeder URI außer / einen 404 auslösen. Weitere Informationen zum Setup finden Sie unter here.

+0

Ah vielen Dank, id upvote aber kann nicht auf der Website, bis mein Ruf höher ist. Aber vielen Dank, ich denke, das ist was ich gesucht habe :) – D3181

Verwandte Themen