Поскольку я решаю “Call to undefined method Illuminate\Database\Query \”

В моем blog я представляю все статьи в начале с substr того, что говорит post, потом у меня есть кнопка чтения больше, чтобы видеть статью в другом виде и там он, где приходит моя ошибка. Он показывает мне следующую ошибку "Call to undefined method Illuminate\Database\Query\Builder:: findBySlug ()"

Мой маршрут - следующий

Route::get('article/{slug}',[
    'uses' => 'FrontController@article',
    'as'   => 'article'
]);

Я FrontController@article

<?php

namespace Blog\Http\Controllers;

use Illuminate\Http\Request;

use Blog\Http\Requests;
use Blog\Articulo;
use Blog\User;
use Blog\Categoria;
use Blog\Http\Controllers\Controller;

class FrontController extends Controller{
    public function article($slug){

        $articul = Articulo::findBySlug($slug);
        return view('articulo',compact('articul'));
    }

}

Мой view соединил

<div class="row">
        <div class="col-md-8">
            <h1>Ultimas Noticias</h1>
                <article>
                    <h2>{{$articul->titulo}}</h2>
                    <div class="row">
                        <div class="col-md-6">
                            <span class="glyphicon glyphicon-folder-open" aria-hidden="true"></span> {{ $articul->categoria->categoria }}
                            <span class="glyphicon glyphicon-user" aria-hidden="true"></span> {{ $articul->user->name }}
                        </div><!--fin del col-md-6-->

                        <div class="col-md-6">
                            <span class="glyphicon glyphicon-calendar" aria-hidden="true"></span> {{ $articul->created_at }}
                        </div><!--fin del col-md-6-->

                    </div><!--fin del row dentro de col-md-8-->
                    <br>
                    <img src="img/{{$articul->path }}" alt="" class="img-responsive">
                    <br>
                    <p>{{ $articul->contenido }}</p>
                </article>
        </div> <!--fin del col-md-8-->

Когда я показываю мои статьи через index, если видят хорошо, но когда я пробую видеть статью особенно, меня посылает эта ошибка.

Модель Артикуло

<?php

namespace Blog;

use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\Sluggable;
use Carbon\Carbon;
class Articulo extends Model{

    use Sluggable;

    /**
    * Return the sluggable configuration array for this model.
     *
     * @return array
     */
    public function sluggable(){
        return [
            'slug' => [
                'source' => 'titulo'
            ]
        ];
    }
     protected $table = 'articulos';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['titulo', 'contenido','slug','path','etiqueta','user_id','categoria_id'];

    public function setPathAttribute($path){
        if(! empty($path)){
            $name = Carbon::now()->second.$path->getClientOriginalName();
            $this->attributes['path'] = $name;
            \Storage::disk('local')->put($name, \File::get($path));
        }
    }



    public function categoria(){
        return $this->belongsTo('Blog\Categoria');
    }

    public function user(){
        return $this->belongsTo('Blog\User');
    }

    public function scopeTitulo($query, $titulo){//Funcion para hacer una busqueda 
        if(trim($titulo) != ''){ //Funcion trim para eliminar los espacios
            $query->where(\DB::raw("titulo"),"LIKE","%$titulo%");
        }


    }
}
3
задан 01.05.2017, 21:46
1 ответ

В версиях самых недавних из Sluggable эти методы составляют часть helpers (Sluggable) и ты должен включать их из-за абзаца в твою модель:

<?php

namespace Blog;

use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\Sluggable;
use Cviebrock\EloquentSluggable\SluggableScopeHelpers;
use Carbon\Carbon;

class Articulo extends Model{

    use Sluggable, SluggableScopeHelpers;

    // ...

}
1
ответ дан 24.11.2019, 13:14
  • 1
    Он дает мне следующую ошибку, войдя в главную страницу моего blog " Trait и #39; Cviebrock\EloquentSluggable\SluggableScopeHelpers и # 39; not found" – Luis Morales 03.10.2016, 19:05
  • 2
    Est и # 225; s используя versi и # 243; n м и # 225; s недавний? aqu и # 237; est и # 225; соответствующий info: github.com/cviebrock/eloquent-sluggable/blob/master/… это у меня есть в нескольких проектах функционируя без проблемы. – Shaz 03.10.2016, 19:08
  • 3
    Как кажется, имей и # 237; в 4.0, уже обновите и я функционирую. – Luis Morales 03.10.2016, 19:36