【问题标题】:Illegal offset type (Laravel)非法偏移类型(Laravel)
【发布时间】:2019-05-03 18:32:07
【问题描述】:

laravel 中带控制器的 Ajax 代码:

<?php

namespace genericlothing\Http\Controllers;

use Illuminate\Http\Request;
use genericlothing\Tienda;
use DB;
class AjaxController extends Controller
{
      public function ajaxBodegasFind(Request $Request)
      {
        $str = "";
        $Tienda = new Tienda;
        $Bodegas = $Tienda->find($Request->ctienda)->bodegas;

        foreach($Bodegas as $Bodega){
          dd($Bodega);
          if($Bodega->estado == "0"){
              $str = $str.'<option value="'.$Bodega->cod_bodega.'">'.$Bodega->direccion_bodega.'</option>';
          }
        }

        return $str;
      }
}

错误图片:

数组 dd($Bodega):

我不明白发生了什么,我有点绝望......

【问题讨论】:

  • 试图在没有 foreach 的情况下访问集合。您可以像 $ Bodega->collectionName 一样访问
  • 为什么不使用-&gt;toArray() 将收集结果转换​​为数组。这将使访问更容易。

标签: arrays json ajax laravel


【解决方案1】:

您似乎正在尝试搜索一个新的 Tienda 模型实例,该实例将为空。

$Tienda = 新的Tienda;

$Bodegas = $Tienda->find($Request->ctienda)->bodegas;

应该是这样的

$Bodegas = Tienda::find(某个值)

您可能需要在模型名称前加上命名空间

编辑: 我不完全确定您要实现什么,但看起来您正在尝试从查询中填充选择。如果是这种情况,您想使用类似的东西

$Bodegas = Tienda::where(fieldname, value)-&gt;get();

Find(value) 只会返回一个匹配记录 id 字段的记录。希望这会有所帮助。

【讨论】:

  • 但是如果我离开它,它不会给我带来我需要的数据
猜你喜欢
  • 2020-10-21
  • 2019-07-16
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 2011-01-12
  • 2013-03-24
  • 2020-11-26
  • 2021-05-29
相关资源
最近更新 更多