Sql 在模型中应用语句,并在Laravel中使用雄辩的语言

Sql 在模型中应用语句,并在Laravel中使用雄辩的语言,sql,sql-server,laravel,eloquent,model,Sql,Sql Server,Laravel,Eloquent,Model,我使用的是Laravel5.1,我试图将使用QueryBuilder进行的所有查询转换为雄辩的查询 要点是,在特定视图中,我需要执行之前的一些“SETANSI语句” 现在,我可以在控制器中执行以下操作以获取一些记录: $db = DB::connection('my_connection_1'); $db->statement('SET ANSI_WARNINGS ON'); $db->statement('SET ANSI_PADDING ON'); $db->sta

我使用的是Laravel5.1,我试图将使用QueryBuilder进行的所有查询转换为雄辩的查询

要点是,在特定视图中,我需要执行之前的一些“SETANSI语句”

现在,我可以在控制器中执行以下操作以获取一些记录:

 $db = DB::connection('my_connection_1');
 $db->statement('SET ANSI_WARNINGS ON');
 $db->statement('SET ANSI_PADDING ON');
 $db->statement('SET ANSI_NULLS ON');

 $select = $db->select('SELECT * FROM name_of_table/view');
这很好,但我不喜欢这样做,因此我创建了一个模型来访问此表/视图,如下所示:

namespace App;

use Illuminate\Database\Eloquent\Model;

class NameFromModel extends Model
{

    protected $connection = 'my_connection_1';

    protected $table = 'name_of_table/view';

}
因此,在控制器中,现在,代码应该与下一个类似:

$select = NameFromModel::get();
但显然,需要一些额外的代码才能添加此模型中需要的语句

我不想在所有查询中都应用这些语句,只是在这个模型中

我将感激你能提供的任何帮助


提前感谢,

您可以在模型中调度的目标事件可以读取时执行这些语句。
例如,在AppServiceProvider中创建事件:

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        \App\NameFromModel::creating(function () {
            \DB::connection('my_connection_1');
            $db->statement('SET ANSI_WARNINGS ON');
            $db->statement('SET ANSI_PADDING ON');
            $db->statement('SET ANSI_NULLS ON');
        });
    }
}

这是令人困惑的,因为这似乎是一种解决方案,只有当您从这个模型中创建(更新、保存、删除或还原…)一个记录时,它才会出现。但实际上,我只需要做一个选择。不管怎样,我看不出你试图提供给我的解决方案。