2016-03-21 11 views
4

So benutze ich Laravel 5.2 und ich habe mein Modell von "Artikel" in "Artikel" umbenannt, ich habe das gleiche für die Klasse sowie den Controller .. aber ich habe eine Fehler in "show" Methode in meinem Controller ..Klasse App Artikel nicht gefunden

"Reflection in Container.php Linie 738:"

Hier ist mein Controller:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Requests\ArticleRequest; 
use App\Http\Controllers\Controller; 
use App\Article; 
use App\User; 
use App\Tag; 
use Auth; 

class ArticlesController extends Controller 
{ 

public function __construct() 
{ 
    $this->middleware('auth'); 
} 

public function index() 
{ 
    $articles = article::latest('created_at')->get(); 

    return view('articles.home', compact('articles')); 
} 

public function show(Article $article) 
{ 
    return view('articles.show', compact('article')); 
} 

public function create() 
{ 
    $tag = Tag::lists('name', 'id'); 

    return view('articles.create', compact('tag')); 
} 

public function store(ArticleRequest $request) 
{ 
    $article = Auth::user()->article()->create($request->all()); 

    $article->tags()->attach($request->input('tags')); 

    flash('Your Article Has Been Successfully Saved','Good Job'); 

    return redirect('articles'); 
} 

public function edit(Article $articles) 
{ 
    return view('articles.edit', compact('articles')); 
} 

public function update(Article $articles, ArticleRequest $request) 
{ 
    $articles->update($request->all()); 

    return redirect('articles'); 
} 

} 

Hier mein Modell ist:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Article extends Model 
{ 
    protected $table = "articles"; 

    protected $fillable = [ 
     'title', 
     'body', 
     'published_at', 
     'user_id' 
    ]; 

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

    public function tags() 
    { 
     return $this->belongsToMany('App\Tag')->withTimestamps(); 
    } 
} 
Hier

ist die Route registriert:

Route::resource('articles','ArticlesController'); 

Schließlich Hier ist meine show.blade.php:

@extends('app') 

@section('content') 

<h2>{{ $article->title }}</h2> 

<div class="body"> 
    <p>{{ $article->body }}</p> 
</div> 

@stop 

Bitte Hilfe ...

+0

Haben Sie versucht,'composer dump-autoload' zu verwenden? – fmgonzalez

+0

In Ihrem Tag-Modell, in der Artikel-Methode, beziehen Sie sich darauf wie esToMany (App/Artikel oder App \ Artikel? – Birdman

+0

ja ich tat .. nicht funktioniert :(@fmgonzalez – Haboosh

Antwort

6

Wenn Sie explizite Route Modell verwenden verbindlich , haben Sie RouteServiceProvider mit dem neuen Klassennamen aktualisiert? Wenn Sie keine explizite Bindung verwenden, ist Ihre Route articles und Ihr Modell ist Article, so dass Laravel es nicht mehr implizit binden kann. Ändern Sie die Route zu Route::resource('article') und es sollte funktionieren.

Verwandte Themen