【问题标题】:how to convert stdclass into string如何将stdclass转换为字符串
【发布时间】:2015-12-14 11:02:16
【问题描述】:

我想在我的项目中创建两个组合框,当我试图将元素插入另一个组合框时,它给了我这样的错误:stdClass 类的对象无法转换为字符串 我怎么解决这个问题 ? 这是控制器:

 public function getIndex(){
        $category=DB::table('categories')->get(['id','name']);
        $sub=DB::table('subcategory')->where('category_id','=',$category)->get(['id','name','category_id']);
        return view ('contents.in')->with('category',$category)
                                    ->with('sub',$sub);
    }
    public function postIndex(Request $request){
        $name=$request->input('name');
        $sub_id=$request->input('sub_id');
        $category_id=$request->input('category_id');
        DB::table('incategory')->insert(['name'=>$name,'sub_id'=>$sub_id,'category_id'=>$category_id]);
        return redirect('/in');
    }

【问题讨论】:

  • 请显示一些代码
  • $sub=DB::table('subcategory')->where('category_id','=',$category)->get(['id','name','category_id ']);
  • @MohamedElbiheiry 你可能应该加入那个部分;)
  • @SulthanAllaudeen 好的,但很抱歉应该加入其中的哪个功能?
  • $category 是一个 ,,你不能只在 select 语句中使用它。这就是错误的原因。你应该做一个 foreach 或加入。

标签: php laravel


【解决方案1】:

为什么问题?在得到$category之后

 $category=DB::table('categories')->get(['id','name']);

$category 是一个数组

你应该做什么?你不能只在里面做 foreach 或者加入

懒惰的方式:(foreach)

$sub = '';
foreach($category as $cat)
{
     $sub.=DB::table('subcategory')->where('category_id','=',$cat->id)->get(['id','name','category_id']);
}
return view ('contents.in')->with('category',$category)->with('sub',$sub);

现在$sub 将得到您预期的结果。

我不确定你的表结构,所以我只是做了一个 foreach ;) 但我希望你使用 join

推荐:

  1. 使用Eloquent

  2. 使用Joins

更新:

这是您需要的fiddle

cars & phones 是我们从控制器传递的两个数组

cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');

populateSelect();

$(function() {

      $('#cat').change(function(){
        populateSelect();
    });

});


function populateSelect(){
    cat=$('#cat').val();
    $('#item').html('');


    if(cat=='car'){
        cars.forEach(function(t) { 
            $('#item').append('<option>'+t+'</option>');
        });
    }

    if(cat=='phone'){
        phones.forEach(function(t) {
            $('#item').append('<option>'+t+'</option>');
        });
    }

} 

【讨论】:

  • $sub.=DB::table('subcategory')->where('category_id','=',$cat->id)->get(['id','name ','category_id']);
  • 你能在 foreach 中打印$cat-&gt;id 吗?
  • 对不起,我的编码不太好,我刚开始,你能帮忙吗?
  • 没关系.. 做foreach($category as $cat) { echo $cat-&gt;id; }
  • 而不是 $sub 行,或者每个行都是另一个?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
相关资源
最近更新 更多