Comment trouver de l'entrée à l'aide de nom éloquent Laravel?
Par défaut, nous avons en général de recherche de l'entrée sur la table db par numéro d'identification. Mais je ne pouvais pas trouver comment rechercher une entrée par la colonne nom.
C'est mon code pour trouver l'entrée et de la rendre à vue
Contrôleur : Auteurs
class Authors_Controller extends Base_Controller {
public $restful = true;
public function get_view($id){
$authorModel = Authors::find($id);
return View::make('authors.view')
->with('author', $authorModel)
->with('title', $authorModel->name);
}
}
Modèle : Auteurs
<?php
class Authors extends Eloquent {
public static $table = 'authors';
}
Route :
Route::controller(Controller::detect());
Route::get('author/(:any)', array('as'=>'author', 'uses'=>'authors@view'));
Vue :
@layout('main.index')
@section('content')
<h1>{{$author->name}}</h1>
<p>
{{$author->bio}}
</p>
<small>
{{$author->created_at}} |
{{HTML::link(URL::$base.'/authors/', 'Go back')}}
</small>
@endsection
Comment puis-je faire de l'url de ne pas afficher les id, mais pour afficher le nom de la poste comme
some.com/category/name (au lieu de some.com/category/id)
Vous devez vous connecter pour publier un commentaire.
Dans votre contrôleur, vous allez toujours à la recherche par
$id
que votre Éloquent requête utilise:Que votre route nommée peut être livré avec un int ou string (:tous) exécuter une vérification sur le type du contrôleur sur
$id
et d'exécuter une autre requête basée sur le résultat.J'espère que vous aide.
Comme une note de côté, votre Éloquent modèle.
Il n'est pas nécessaire pour vous fournir un nom de table si vous utiliser correctement les conventions de nommage.
Notez le singulier
Author
mappage à une table appeléeAuthors
automatiquement sans aucune intervention de votre part.