如何解决Laravel-Illuminate \ Database \ Eloquent \ Builder类的对象无法转换为字符串
问题末尾有代码。这是我的问题。我不知道为什么我的输入变量在模型中不起作用。它返回“ Illuminate \ Database \ Eloquent \ Builder类的对象无法转换为字符串”,并指向查询中的“ f.object_status_code ='$ s_status'”行。
奇怪的是,我一次在模型中输入了一些额外的随机参数,从而在模型中犯了一个错误...
public function scopegetFeeList($mistake,$s_status){
...,即使第一个参数不存在,它也会返回结果。我不知道为什么行得通。但是带有$ s_status单个参数的正确版本会告诉我“无法转换为字符串错误。”
我试图了解如何使用原始数据库查询将参数成功传递给模型。 (我之所以使用原始查询,是因为该查询比此处表示的要复杂得多。出于说明目的,我对其进行了简化。)
我也尝试了这种表示法:where f.object_status_code = '."$s_status."'
收到了相同的错误消息。
任何帮助将不胜感激。
现在我的代码:
路线:
Route::get('/srfees','SRFeesRepController@srfeelist')->name('srfeesrep');
控制器:
<?php
namespace App\Http\Controllers\Apps;
use App\Http\Controllers\Base\HomeController;
use Illuminate\Http\Request;
use App\Http\Models\Apps\SRfeesRepModel;
class SRFeesRepController extends HomeController
{
public function srfeelist(Request $request)
{
$s_status = $request->input('s_status','Inactive');
$fee_list = SRfeesRepModel::getFeeList($s_status);
$base_data = $this->get_base_data();
return view('pages.apps.srfeesrep')
->with('base_data',$base_data)
->with('fee_list',$fee_list);
}
}
型号:
<?php
namespace App\Http\Models\Apps;
use Illuminate\Database\Eloquent\Model;
use DB;
class SRfeesRepModel extends Model
{
public function scopegetFeeList($s_status){
$results = DB::connection('MyDB')
->select(DB::raw("
SELECT
f.code as 'code',f.printcode as 'printcode',f.object_status_codeas 'status'
FROM fee f
where f.object_status_code = '$s_status'
") ) ;
return $results;
}
}
解决方法
用这个替换您的范围方法
public function scopegetFeeList($query,$mistake,$s_status){
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。