我正在研究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.
谢谢。