laravel数组到字符串转换(implode不起作用)

时间:2016-06-01 20:15:07

标签: laravel

嗨,大家好我在laravel中遇到了这个更新功能的问题(我没有使用这种关系(hasmany belongsto)laravel的用法,因为它是我的学习项目,它没有& #39; t工作我使用sql语句,错误在$ menu_id行

    public function update($session,$date, Request $request)
{
 /*
   * */ //fetch the new plats edited
    $titles = $request->input('plats');

    //        fetch the menu id
     $menu_id=$this->menu->menuid($session,$date);

      //$id=implode("",$menu_id);
     //dd($id);
    foreach ($titles as $ds) {
       $plats_id=$this->menu->getplatsid($ds);

        DB::update("UPDATE Menu_items 
                               SET id_plats='$plats_id'
                                where id_menu= '".$menu_id."'  ");




    }

我尝试了implode函数,但它给了我一个stdclass错误 谢谢

  public function menuid($session,$date){
    return DB::select(DB::raw("Select id 
                             from Menu 
                             where session LIKE '".$session."' AND  date ='".$date."'"));

}

2 个答案:

答案 0 :(得分:0)

你说:

  

我尝试了implode函数,但它给了我一个stdclass错误谢谢

这意味着你想要崩溃的东西是一个对象。如果你想使用implode函数,你需要有一个数组。

要解决此问题,请将$menu_id转换为数组。

您可以尝试使用toArray方法。像这样:

//        fetch the menu id
$menu_id=$this->menu->menuid($session,$date)->toArray();

答案 1 :(得分:0)

如果您使用的是laravel的DB包装器,SELECT查询将返回一个集合(Illuminate\Support\Collection)类。因此,'对象'错误。

更改

发件人:

$menu_id=$this->menu->menuid($session,$date);

$menu_id=$this->menu->menuid($session,$date)->implode('id');

集合类的implode函数模仿PHP的函数。

详细了解collections here

laravel的小怪癖起初看起来很麻烦,但如果有足够的经验,它将加快你的开发项目。