我创建了一个类并将其扩展为模型。现在我需要调用我已经在mysql数据库中创建的mysql存储过程但是当我使用DB::select
时它从这个模型类中显示了未定义的方法。使用use Illuminate\Support\Facades\DB;
后,问题仍然存在。
我的代码是:
<?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");
}
}
答案 0 :(得分:0)
从documents开始,这是使用Laravel查询构建器进行选择的正确方法
$ users = DB :: table('users') - &gt; select('name','email as user_email') - &gt; get();另一个例子 $ query = DB :: table('users') - &gt; select('name');
您的代码似乎试图调用查询中的另一个函数,这在我所知道的Laravel中不起作用。查询构建器旨在为您在Eloquent结构中构建查询提供一些灵活性。
答案 1 :(得分:0)
您是否尝试过使用DB::statement('call getUserNews');
?这是使用Laravel的DB Facade编写硬编码sql语句的推荐方法。请查看https://laravel.com/docs/5.2/database#running-queries中的statement
部分。
答案 2 :(得分:0)
打开命令行以创建一个模型:
php artisan make:model ModelName
现在一个文件将在App文件夹中创建。 打开该文件,
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");
}