在Model中创建自定义函数

时间:2015-05-28 02:01:34

标签: php laravel laravel-5

我正在研究Laravel创建我的网站,但我需要创建一个自定义函数来搜索我的数据库,我想知道如何做到这一点。我知道在Symfony2中我创建了一个Repository Class,并在其中创建了我想要做的函数。

我试过这样:

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Information extends Model
{

    public function scopeGetInformationFromFieldName( $query, $param )
    {
        return $query->where( 'field_name', '=', $param );
    }

}

但是当我运行代码时,我收到一个错误:

BadMethodCallException {#151 ▼
  #message: "Call to undefined method Illuminate\Database\Query\Builder::getInformationsFromFieldName()"
  #code: 0
  #file: "/var/www/laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php"
  #line: 1999
  -trace: array:52 [▶]
}

我需要创建一个Repository,这种代码存在于Laravel中?

- 更新1

这是我的控制器代码:

class HomeController extends Controller
{

    public function index()
    {
        $skills = \App\Skill::all();
        $informations = \App\Information::getInformationsFromFieldName( "test" )->get();

        return view( "home.index", compact( 'skills' ) );
    }

}

- 更新2

我发现了我的错误,我正在调用 getInformationsFromFieldName ,但我的函数是 getInformationFromFieldName ,没有复数以供参考。

我在这个项目中使用Laravel 5.

谢谢。

0 个答案:

没有答案