2016-02-02 3 views
1

Я новичок в Laravel, я пробую все вокруг, проходя через учебник. Здесь я столкнулся с неожиданным поведением.Доступ к методам модели из класса контроллера Laravel

У меня есть модель tweet и контроллер по имени tweetsController; когда я называю tweet::find() или любой подобный метод, который я нашел это:

FatalErrorException in tweetsController.php line 13: 
Class 'App\Http\Controllers\tweet' not found 

Я также попытался App\tweet::find(). Все кажется прекрасным, хотя трут.

Просьба пояснить.

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 
class tweetsController extends Controller 
{ 
    public function show(){ 
     $data = tweet::first()->tweetBody; 
     return view('tweets.list',['passedData'=> $data]); 
    } 

    public function delete($id){ 
     return "here we dele the tweet ".$id; 
    } 

    public function add(){ 
     return "i add your tweet to database then show you all the tweets"; 
    } 
} 

tweet.php

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class tweet extends Model 
{ 
    protected $fillable = array(
     'tweetHead', 
     'tweetBody' 
    ); 
} 

?> 

ответ

3

Несколько опций может быть, генерируя эту ошибку:

  • модель/пространство имен контроллер является неправильным;
  • Имя файла и имя класса для модели должно быть «Tweet» с первой буквой в верхнем регистре;
  • Если вы установите нужное пространство имен на модели "Tweet.php" и импорта, что на вашем "TweetController.php"

Я надеюсь, что помогает :)


UPDATE:

В TweetController.php добавить

use App\Tweet; 

До класса объявлений о пок иона, как это

use App\Tweet; 
class tweetsController extends Controller 
{ 

И не забудьте изменить имя контроллера в объявлении класса как этот

class TweetsController extends Controller 
    { 

и имя контроллера станет «TweetsController.php»

Модель также имеет называться «Tweet», а не «чирикать» в декларации класса и имя файла

class tweet extends Model 

станет

class Tweet extends Model 

и файл будет называться «Tweet.php»

и каждый раз, когда вам нужно позвонить модель вы будете делать это

public function show(){ 
     $data = App\Tweet::first()->tweetBody; 
     return view('tweets.list',['passedData'=> $data]); 
    } 
Смежные вопросы