如何从laravel中的对象变量获取特定列的值

问题描述 投票:1回答:5

从模型TagModel我可以过滤我想要它的值,但值以对象变量的形式存储。要在控制器中使用这些数据,我无法获取特定的ID。这是我的模特

public static function getLatestTag($name){
    return $tagIds =DB::table('tags')
                    ->where ('is_deleted',0)
                    ->where('name',$name)
                    ->get();
}

这是我的控制器代码:

foreach ($newTags as $newTag) {
                $productTagIds[] = TagModel::getLatestTag($newTag);
                dd($id);
            }

            $productId = (int)ProductManagementModel::getMaxId();
            foreach ($productTagIds as $productTagId) {
            $productTag = new ProductTagModel;
            $productTag ->product_id = $productId;
            $productTag ->tag_id = $productTagId;
            $productTag->save();    
            }

我想要的值存储在变量$ productTagIds中,它是对象变量。我该如何从中获取id?

php laravel
5个回答
1
投票
public function addProduct()
    {       
            foreach(Input::get('tagName') as $checkTag){

                $newTags[]=$checkTag;
            }
            foreach ($newTags as $newTag) {
                if(TagModel::checkExist($newTag)){
                    $tagExist[] =  TagModel::checkExist($newTag);
                    $message = 'The tag <b>'.$checkTag.'</b>  already exist';
                Session::flash('class', 'alert alert-error');
                Session::flash('message', $message);    
                return View::make('admin.product_management.add');
                }
                else {  

                        $objectTagProduct = new TagModel;
                        $objectTagProduct ->name = $newTag;
                        $objectTagProduct->save();
                        $productTagIds[]=$objectTagProduct->id;

                }
            }
                $objectProduct = new ProductManagementModel;
                $objectProduct->product_name        = Input::get('product_name');
                $objectProduct->product_url         = $productUrl;
                $objectProduct->category_id         = Input::get('category_id');
                $objectProduct->product_cost        = Input::get('product_cost');
                $objectProduct->product_short_description = Input::get('product_short_description');
                $objectProduct->product_description = Input::get('product_description');
                $objectProduct->is_active   = Input::get('is_active');
                $objectProduct->created_at  = Auth::user()->id;
                $objectProduct->updated_at  = Auth::user()->id;

                if($logo != '')
                {
                $objectProduct->product_attachment = $logo; 
                }

                $objectProduct->save();

                $productId = (int)ProductManagementModel::getMaxId();
                //dd($productId);
                foreach ($productTagIds as $productTagId) {
                    //dd($productTagIds);
                $productTag = new ProductTagModel;
                $productTag ->product_id = $productId;
                $productTag ->tag_id = $productTagId;

                $productTag->save();    
                }


                if($objectProduct->id) {
                    Session::flash('class', 'alert alert-success');
                    Session::flash('message', 'Product successfully added');
                    return View::make('admin.product_management.add');
                } else {
                    Session::flash('class', 'alert alert-error');
                    Session::flash('message', 'Something error');
                    return View::make('admin.product_management.add');
                }


    }

代码可能会闪现某个必须自行排除故障的错误。我保留了 $productTagIds[]=$objectTagProduct->id;之后的$objectTagProduct->save();请试一试


0
投票
public static function getLatestTag($name){
    return $tagIds = DB::table('tags')
                    ->where ('is_deleted',0)
                    ->where('name',$name)
                    ->pluck(id);
}

0
投票
public static function getLatestTag($name){
    return App\TagModel::where('is_deleted',0)->where('name',$name)->first()->id;
}

$ids = [];
foreach ($newTags as $newTag) {
   $productTagId = TagModel::getLatestTag($newTag);
   array_push($ids,$productTagId);
}
 $productId = (int)ProductManagementModel::getMaxId();
 foreach ($ids as $productTagId) {
    $productTag = new ProductTagModel;
    $productTag ->product_id = $productId;
    $productTag ->tag_id = $productTagId;
    $productTag->save();    
 }

尽量使用这样的口才


0
投票

从对象类变量中获取特定值

$productTagIds[]=$objectTagProduct->id;`

0
投票
public function addProduct()
    {       
            foreach(Input::get('tagName') as $checkTag){

                $newTags[]=$checkTag;
            }
            foreach ($newTags as $newTag) {
                if(TagModel::checkExist($newTag)){
                    $tagExist[] =  TagModel::checkExist($newTag);
                    $message = 'The tag <b>'.$checkTag.'</b>  already exist';
                Session::flash('class', 'alert alert-error');
                Session::flash('message', $message);    
                return View::make('admin.product_management.add');
                }
                else {  

                        $objectTagProduct = new TagModel;
                        $objectTagProduct ->name = $newTag;
                        $objectTagProduct->save();

                }
            }
                $objectProduct = new ProductManagementModel;
                $objectProduct->product_name        = Input::get('product_name');
                $objectProduct->product_url         = $productUrl;
                $objectProduct->category_id         = Input::get('category_id');
                $objectProduct->product_cost        = Input::get('product_cost');
                $objectProduct->product_short_description = Input::get('product_short_description');
                $objectProduct->product_description = Input::get('product_description');
                $objectProduct->is_active   = Input::get('is_active');
                $objectProduct->created_at  = Auth::user()->id;
                $objectProduct->updated_at  = Auth::user()->id;

                if($logo != '')
                {
                $objectProduct->product_attachment = $logo; 
                }

                $objectProduct->save();

                $productId = (int)ProductManagementModel::getMaxId();
                //dd($productId);
                foreach ($productTagIds as $productTagId) {
                    //dd($productTagIds);
                $productTag = new ProductTagModel;
                $productTag ->product_id = $productId;
                $productTag ->tag_id = $productTagId;
                $productTagIds[]=$objectTagProduct->id;
                $productTag->save();    
                }


                if($objectProduct->id) {
                    Session::flash('class', 'alert alert-success');
                    Session::flash('message', 'Product successfully added');
                    return View::make('admin.product_management.add');
                } else {
                    Session::flash('class', 'alert alert-error');
                    Session::flash('message', 'Something error');
                    return View::make('admin.product_management.add');
                }


    }

我开始知道从对象类变量$productTagIds[]=$objectTagProduct->id; 获取数据但是我对它的流程以及执行此代码的位置感到困惑。

© www.soinside.com 2019 - 2024. All rights reserved.