fastadmin where条件用变量条件没有数据显示,求大神指教

public function index()

{
    $group_id =$this->request->get('ide');         //dump($group_id)有数据  为1
    $total = $this->model
        ->where('group_id','=',$group_id)         
        ->count();
    $list = $this->model
        ->where('group_id','=',$group_id)
        ->select();
    $list = collection($list)->toArray();
    $result = array("total" => $total, "rows" => $list);
    if ($this->request->isAjax()) {
        return json($result);
    }
    return $this->view->fetch();
}                                 
                                                 // 若$group_id换成数字1就有数据显示

查看更多

关注者
0
被浏览
1.3k
28 个回答
qweasd
qweasd 2018-09-04
这家伙很懒,什么也没写!

@xiaoxiaoming image.png
tp5 不是这么用的吧?

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@qweasd 可以这么用 但我用->where('group_id',$group_id)前端也是没有数据显示,可是我用->where('group_id',1)前端就有数据显示了

青袂
青袂 2018-09-04
这个人很懒,啥都没写

好像数字1和字串1 是有区别的

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@青袂 这个是有区别,但我把$group_id获取的数字转转成int(1)也是没数据显示,哎

君君要上天
君君要上天 2018-09-04
这家伙很懒,什么也没写!

把sql语句打出来看一下

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@君君要上天 array(2) {
["total"] => int(4)
["rows"] => array(4) {

[0] => array(8) {
  ["id"] => int(1)
  ["group_id"] => int(1)
  ["show_name"] => string(12) "湖南卫视"
  ["show_url"] => string(20) "http://www.baidu.com"
  ["sequence_number"] => string(1) "1"
  ["show_remark"] => string(12) "湖南有限"
  ["status"] => string(1) "0"
  ["status_text"] => string(8) "Status 0"
}
[1] => array(8) {
  ["id"] => int(2)
  ["group_id"] => int(1)
  ["show_name"] => string(12) "广东卫视"
  ["show_url"] => string(22) "http://www.beijing.com"
  ["sequence_number"] => string(1) "1"
  ["show_remark"] => string(0) ""
  ["status"] => string(1) "0"
  ["status_text"] => string(8) "Status 0"
}
[2] => array(8) {
  ["id"] => int(3)
  ["group_id"] => int(1)
  ["show_name"] => string(12) "江西卫视"
  ["show_url"] => string(21) "http://www.jianxi.com"
  ["sequence_number"] => string(0) ""
  ["show_remark"] => string(0) ""
  ["status"] => string(1) "0"
  ["status_text"] => string(8) "Status 0"
}

dump()的话是有数据

君君要上天
君君要上天 2018-09-04
这家伙很懒,什么也没写!

你是说dump有数据,但是前端不显示?这样的话浏览器控制台看一下有没有报错

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@君君要上天 完全没有任何报错提示,我都懵逼了现在,不可能没有数据显示啊,但是我把变量$group_id改为具体数字1,->where('group_id',1)前端就有数据显示,特么我都蒙了,dump也有数据,求各位大神请教一下

君君要上天
君君要上天 2018-09-04
这家伙很懒,什么也没写!

不要慌。快去申请世界十大未解之谜。

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@君君要上天 哎 兄弟你真会说笑,我再看看吧

allen
allen 2018-09-04
这家伙很懒,什么也没写!

换个浏览器啊 或者用postman 不信没有数据出来

青袂
青袂 2018-09-04
这个人很懒,啥都没写

用$group_id有数据但是前段不显示还是就没有数据?dump出来也是空的?

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@青袂 用$group_id有数据,dump出来是有数据的,就是前端不显示,我也不知道怎么回事了

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@allen postman 这个是?

青袂
青袂 2018-09-04
这个人很懒,啥都没写

然后return回来有没有 php查询和js的渲染看一下
@xiaoxiaoming

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@青袂 define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

var Controller = {
    index: function () {
        // 初始化表格参数配置
        Table.api.init({
            extend: {
                index_url: 'live/show/index',
                add_url: 'live/show/add',
                edit_url: 'live/show/edit',
                del_url: 'live/show/del',
                multi_url: 'live/show/multi',
                table: 'live_show',
            }
        });
        var table = $("#table");
        // 初始化表格
        table.bootstrapTable({
            url: $.fn.bootstrapTable.defaults.extend.index_url,
            pk: 'id',
            sortName: 'id',
            columns: [
                [
                    {checkbox: true},
                    {field: 'id', title: __('Id')},
                    {field: 'group_id', title: __('分组ID')},
                    {field: 'show_name', title: __('Show_name')},
                    {field: 'show_url', title: __('Show_url'), formatter: Table.api.formatter.url},
                    {field: 'sequence_number', title: __('Sequence_number')},
                    {field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1')}, formatter: Table.api.formatter.status},
                    {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                ]
            ]

        });
        // 绑定TAB事件
        $('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
            var field = $(this).closest("ul").data("field");
            var value = $(this).data("value");
            var options = table.bootstrapTable('getOptions');
            options.pageNumber = 1;
            options.queryParams = function (params) {
                var filter = {};
                if (value !== '') {
                    filter[field] = value;
                }
                params.filter = JSON.stringify(filter);
                return params;
            };
            table.bootstrapTable('refresh', {});
            return false;
        });

        // 为表格绑定事件
        Table.api.bindevent(table);
    },
    add: function () {
        Controller.api.bindevent();
    },
    edit: function () {
        Controller.api.bindevent();
    },
    api: {
        bindevent: function () {
            Form.api.bindevent($("form[role=form]"));
        }
    }
};
return Controller;

});

PHP

<?php
namespace appadmincontrollerlive;
use appcommoncontrollerBackend;
/**

  • 直播节目管理

*

  • @icon fa fa-circle-o

*/
class Show extends Backend
{

/**
 * Show模型对象
 * @var \app\admin\model\live\Show
 */
protected $model = null;

public function _initialize()
{
    parent::_initialize();
    $this->model = new \app\admin\model\live\Show;
    $this->view->assign("statusList", $this->model->getStatusList());
}
public function index()
{
    $id=$this->request->Get('ide');
    $this->request->filter(['strip_tags']);
    if ($this->request->isAjax()) {
        if ($this->request->request('keyField')) {
            return $this->selectpage();
        }
        $total = $this->model
            ->where('group_id',$id)
            ->count();
        $list = $this->model
            ->where('group_id',$id)
            ->select();
        $list = collection($list)->toArray();
        $result = array("total" => $total, "rows" => $list);
       return json($result);
    }
      return $this->view->fetch();
}
/**
 * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
 * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
 */

}

青袂
青袂 2018-09-04
这个人很懒,啥都没写

看起来好像没问题 浏览器里面加载对应页面的时候有数据传出来吗?

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@青袂 没有,我也纳闷啊,前端就是没数据来,哎,懵逼啊

青袂
青袂 2018-09-04
这个人很懒,啥都没写

@xiaoxiaoming 能dump出来但是不返回就一句句排查吧 其他页面也这样还是就这个页面是这样的

田诚诚
田诚诚 认证专家 2018-09-04
守匠心 有态度 109457371

各位大神 稍安勿躁 这人交给我了

xiaoxiaoming
xiaoxiaoming 2018-09-04
小小程序员一枚

@青袂 @qweasd @君君要上天 @allen @龙启云 感谢龙大神手把手教小的,问题解决,也感谢各位大神的指教,谢谢大家!

allen
allen 2018-09-04
这家伙很懒,什么也没写!

程序员接口调试必备神器,调试其他打印数据也是很棒的

szw
szw 2018-09-25
这家伙很懒,什么也没写!

我应该碰到类似的问题了,参数在index方法中 的AJAX里面获取不到。所以显示不了数据,兄弟,你是怎么解决啊

XJB2015
XJB2015 2018-12-03
这家伙很懒,什么也没写!

有处理好的吗?处理好了说一声?

luckylover
luckylover 2018-12-17
这家伙很懒,什么也没写!

我也碰到类似的问题了,请问是怎么解决的?

iamknight
iamknight 2019-01-04
这家伙很懒,什么也没写!

问题是怎么解决的,公布下呀,兄弟

qiewenye
qiewenye 3天前
这家伙很懒,什么也没写!

很明显是group_id没有获取到,ajax传入的地址是前台js给的地址,
Table.api.init({

        extend: {
            index_url: 'live/show/index',
            add_url: 'live/show/add',
            edit_url: 'live/show/edit',
            del_url: 'live/show/del',
            multi_url: 'live/show/multi',
            table: 'live_show',
        }
    });

在控制器立面group_id是通过request->ide获取的,index_url: 'live/show/index',这个地址后面是空的,所以group_id是空的,你还不加判断,ajax的地址是独立地址,所以就发生你AJAX获取不到数据,和其它没有关系

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览