Laravel 5.5 jQuery ajax方法

时间:2018-03-07 11:38:59

标签: jquery laravel laravel-5.5

大家好>

我遇到了一个特殊的问题。以下代码是我的控制器功能

public function populateIndustry(Request $request) {

    if($request->isMethod('post')) {
        $var = "Post Method";
    } else {
        $in_id = $request->industry_id;
        //$var = $request->industry_id;
        $var = IndustryAction::where('industry_id',$request->industry_id)->toSql();
    }   
    return response()->json($var);
}

这是我的jQuery代码:

$(".edit_industry").click(function(e){
  $.ajax({
    url: "populateIndustry",
    type: "get",
    data: { 
      '_token':$('input[name=_token]').val(),
      'industry_id':$(this).data('id'),
    },
    success: function(data) {
      console.log(data);
    },
    error: function(data) {
      console.log(data);
    }
  });    
});

因为您可以看到我正在尝试检查查询,但我发现此查询中未填充industry_id字段:

select * from `industries` where `industry_id` = ?

然而在这行代码中,我发现返回了正确的id

//$var = $request->industry_id;

任何人都可以指出我的错误吗?

3 个答案:

答案 0 :(得分:1)

你试过这个吗?

 $var = IndustryAction::where('industry_id',$request->industry_id)->get();

你有一些错误吗?你检查过拼写错误了吗?

答案 1 :(得分:1)

如果你知道查询格式,也许你可以这样做:

$query = IndustryAction::where('industry_id',$request->industry_id);
$stub_sql = $query->toSql();
$values = $query->getBindings();

$var = str_replace( '?', $values[0], $stub_sql );

答案 2 :(得分:1)

你可以这样做..

启用查询日志,然后

//enable the log first
\Illuminate\Support\Facades\DB::enableQueryLog();

 $var = IndustryAction::where('industry_id',$request->industry_id)->get();

 return \Illuminate\Support\Facades\DB::getQueryLog();

你将使用像

这样的绑定来获取json
query:  "select * from `industry_action` where `id` = ?"
bindings: 
    0:  12
time:   0.62

“12”是你的身份