从控制器类Laravel访问模型方法

时间:2016-02-02 21:05:18

标签: php laravel laravel-5

我是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'
    );
}

?>

2 个答案:

答案 0 :(得分:4)

可能产生此错误的几个选项:

  • 模型/控制器名称空间不正确;
  • 文件的名称和模型的类名必须为“Tweet”,第一个字母为大写;
  • 如果您在模型“Tweet.php”上设置了正确的命名空间并将其导入“TweetController.php”

我希望有帮助:)

更新:

在TweetController.php中添加此

use App\Tweet;

在课堂宣言之前,像这样

use App\Tweet;
class tweetsController extends Controller
{

请记住在类声明中更改控制器名称,如此

class TweetsController extends Controller
    {

控制器文件名将变为“TweetsController.php”

模型也必须在类声明和文件名中命名为“Tweet”而不是“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]);
    }

答案 1 :(得分:0)

添加 使用添加\用户 控制器中名称空间下方的