我创建了一个类并将其扩展为模型。现在我需要调用mysql存储过程,我已经在mysql数据库中创建了这个存储过程,但当我使用DB::select
时,它显示了undfine方法。在使用CCD_ 2之后,问题仍然存在。
我的代码是:
<?php
namespace App;
use Illuminate'Database'Eloquent'Model;
use Illuminate'Support'Facades'DB;
class Domain extends Model
{
public $table = 'english_news';
public static function getEngNews()
{
return DB::select("call getUserNews");
}
}
从文档中,这是使用Laravel查询生成器进行选择的正确方式
$users=DB::table('users')->select('name','emailasuser_email')->get();作为另一个例子$query=DB::table('users')->select('name');
您的代码似乎试图在查询中调用另一个函数,据我所知,该函数在Laravel中不起作用。查询生成器旨在为您在Eloquent结构中构建查询提供一定的灵活性。
您尝试过使用DB::statement('call getUserNews');
吗?这是使用Laravel的DB facade编写硬编码sql语句的推荐方法。查看中的statement
部分https://laravel.com/docs/5.2/database#running-查询。
打开命令行创建一个模型:
php artisan make:model ModelName
现在将在应用程序文件夹中创建一个文件。打开那个文件,
namespace App;
use Illuminate'Database'Eloquent'Model;
class ModalName extends Model
{
protected $table = 'english_news'; //Fill this portion.
}
控制器内:
public static function getEngNews()
{
return ModalName::select("getUserNews");
}