Passer une variable dans l'url de laravel
Je suis assez nouveau dans laravel et j'ai du mal à obtenir le format de mon url correcte.
Il formats
http://mysite/blog?category1 instead of http://mysite/blog/category1
Ce sont les fichiers que je suis en utilisant, il est un moyen de mettre la route dans le BlogController
Route.php
Route::get('blog/{category}', function($category = null)
{
//get all the blog stuff from database
//if a category was passed, use that
//if no category, get all posts
if ($category)
$posts = Post::where('category', '=', $category)->get();
else
$posts = Post::all();
//show the view with blog posts (app/views/blog.blade.php)
return View::make('blog.index')
->with('posts', $posts);
});
Blogcontroller
class BlogController extends BaseController {
public function index()
{
//get the posts from the database by asking the Active Record for "all"
$posts = Post::all();
//and create a view which we return - note dot syntax to go into folder
return View::make('blog.index', array('posts' => $posts));
}
}
blog.l'indice de la lame
@foreach ($posts as $post)
<h2>{{ $post->id }}</h2>
<p>{{ $post->name }}</p>
<p>{{ $post->category }}</p>
<h2>{{ HTML::link(
action('BlogController@index',array($post->category)),
$post->category)}}
@endforeach
Êtes-vous sur apache ou nginx, je pense que c'est un problème de réécriture d'url.
Qu'entendez-vous par "formats" ? Lorsque vous tapez dans le navigateur? Ou les liens générés par Laravel?
Le lien généré par laravel à partir de la db. maintenant s'afficher comme localhost/blog?category=category1 et il ne filtre pas les db résultats si quelque chose cloche quelque part
Qu'entendez-vous par "formats" ? Lorsque vous tapez dans le navigateur? Ou les liens générés par Laravel?
Le lien généré par laravel à partir de la db. maintenant s'afficher comme localhost/blog?category=category1 et il ne filtre pas les db résultats si quelque chose cloche quelque part
OriginalL'auteur tom harrison | 2014-10-16
Vous devez vous connecter pour publier un commentaire.
routes.php
*.blade.php imprimer le formulaire de url
OriginalL'auteur erajuan
Au lieu d'utiliser une fonction comme la fonction de rappel pour votre
Route::get
utilisation d'un contrôleur et d'une action:Maintenant dans votre
BlogController
vous pouvez créer votre fonction.Mise à jour:
Pour afficher vos liens dans votre vue, vous devez utiliser
HTML::linkAction
au lieu deHTML::link
:Merci, j'ai mis à jour mon code ci-dessus, et il affiche toujours le lien sous monsite/blog?category1 au lieu de monsite/blog/category1
dans mon appli dans mon url, je place ?catégorie=1 et ensuite dans mon contrôleur, je l'extrait de la variable de catégorie = Input::get('categorie');
OriginalL'auteur Jerodev
Avez-vous essayé d'utiliser les alternatives .htaccess comme indiqué dans la documentation?
Ici, vous allez:
Vous devez la placer dans le
public
dossier de votre application.Voici l'original .htaccess dans le cas où vous ne l'avez pas, pour quelque raison que ce soit
Pouvez-vous essayer d'entrer dans l'ordure de la valeur dans votre
.htaccess
pour vérifier si cela fonctionne? Si elle fonctionne, vous devriez obtenir un500 Internal Server Error
Oui, c'est de travailler tout juste de recevoir une erreur de serveur
Eh bien au moins la .htaccess fonctionne. Nous avons besoin de plus d'informations comme si vous êtes sur un serveur apache ou nginx et quel environnement de serveur, vous travaillez (LAMP, WAMP,...) - et aussi: mod_rewrite est activé sur votre serveur?
le mod_rewrite est activé et je suis en cours d'exécution sur xampp. Juste pour être clair, si j'ai monsite/blog/category1 manuellement, il affiche le bon résultat. Mais il a encore sorties de l'url comme monsite/blog?category1 à l'aide de la laravel HTML:Lien
OriginalL'auteur Adrenaxus
J'ai ajouté un nouvel itinéraire dans:
et ajouté un nouveau lien dans index.lame:
OriginalL'auteur tom harrison