2012-08-23 15 views
5

Varsayılan olarak, genellikle db tablosundaki herhangi bir girişi kimlik numarasıyla ararız. Ancak, herhangi bir girişi ad sütununda nasıl arayacağımı bulamadım. YazarlarElverişli Laravel'de adı kullanarak giriş nasıl bulunur?

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); 
    } 

} 

Modeli: Yazarlar

<?php 

class Authors extends Eloquent { 
    public static $table = 'authors'; 
} 

Rota:

Bu

Kontrolör görüntülemek için giriş bulma ve bunu işlemek için benim kodudur

Route::controller(Controller::detect()); 

Route::get('author/(:any)', array('as'=>'author', 'uses'=>'[email protected]')); 

Görünüm: i id gösterilecek ama (yerine some.com/ ait

some.com/category/name gibi yazının adını görüntülemek için değil url yapmak nasıl

@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 

kategori/id) kumandanızda olarak

cevap

20

her zaman, Etkili sorgu olarak $id göre aramak olacak kullanır:

$authorModel = Authors::find($id); 

Atanan rotanız bir int veya string ile sağlanabilir (: any) üzerindeki denetleyicide bir tür denetimi yapın ve sonuca göre farklı bir sorgu çalıştırın.

public function get_view($id) 
{ 
    if (is_numeric($id)) 
    { 
     $authorModel = Authors::find($id); 
    } 
    else 
    { 
     $column = 'name'; // This is the name of the column you wish to search 

     $authorModel = Authors::where($column , '=', $id)->first(); 
    } 

    return View::make('authors.view') 
       ->with('author', $authorModel) 
       ->with('title', $authorModel->name); 

} 

Umarım bu size yardımcı olur.

Bir yan not olarak, Eloquent modeliniz.

Doğru adlandırma kuralları kullanırsanız, bir tablo adı sağlamanıza gerek yoktur. tekil Author bir tabloya eşler

class Author extends Eloquent { 

} 

Not sizden herhangi bir müdahale olmadan otomatik olarak Authors aradı.

+0

Maalesef bu çok işe yaramıyor – monk

+0

Ne yazık ki işe yaramadı – monk

+0

iki sözcük arasındaki boşluk var mı? – monk

İlgili konular