代码之家  ›  专栏  ›  技术社区  ›  Martney Acha

Yajra数据表Laravel中的Foreach

  •  4
  • Martney Acha  · 技术社区  · 7 年前

    我试图在我的数据表中放入一个foreach循环,但它不起作用, 附件是我的代码

    $Product = Product::query();
    $colors   = Color::all();
    
    return Datatables::eloquent($Product)
    
        ->addColumn('category_name', function($row) {
    
            $category = Category::select('name')->where('id', $row->category_id )->pluck('name')->toArray();
            return $category;
    
        })
    
        ->addColumn('add_color', function($row) {
    
            $return = 
                '<form class="form-inline" method="post" action="/procurement/add-product" style="max-width: 170px;">
                <input type="hidden" name= "product_id" value="' . $row->id . '">
    
                <div class="form-group">
                <select name="color_id" class="form-control" required autofocus>
                        '.foreach ($colors as $color){.' 
                        <option value="test">test</option>'.}.'
                </select>
                </div>';
    
            return $return;
    
    });
    
    2 回复  |  直到 7 年前
        1
  •  5
  •   Wreigh    7 年前

    那不行,你正在连接一个 foreach 变成一个 string

    foreach公司 首先准备要附加到该字符串中的项目。

    例如。,

    <option>something</option>
    <option>something more</option>
    

    在设置 $return foreach公司 :

    ->addColumn('add_color', function($row) {
    
        $options = ''
        // here we prepare the options
        foreach ($colors as $color) {
            $options .= '<option value="test">$color</option>';
        }
    
        $return = 
           '<form class="form-inline" method="post" action="/procurement/add product" style="max-width: 170px;">
            <input type="hidden" name= "product_id" value="'.$row->id.'">
    
            <div class="form-group">
                <select name="color_id" class="form-control" required autofocus>' . $options . '</select>
            </div>';
    
        return $return;
    
    })
    
        2
  •  4
  •   Kenneth    7 年前

    use 或导入 $color 数据表中的变量。像这样的。。

    $Product = Product::query();
    $colors   = Color::all();
    
    return Datatables::eloquent($Product)
    
    ->addColumn('category_name', function($row) {
    
        $category = Category::select('name')->where('id', $row->category_id )->pluck('name')->toArray();
        return $category;
    
    })
    
    ->addColumn('add_color', function($row) use ($colors)  {
            $options = '';
            foreach ($colors as $color) {
                $options .= '<option value="test">$color</option>';
            }
    
        $return = 
            '<form class="form-inline" method="post" action="/procurement/add-product" style="max-width: 170px;">
            <input type="hidden" name= "product_id" value="' . $row->id . '">
    
            <div class="form-group">
            <select name="color_id" class="form-control" required autofocus>
            </select>
            </div>';
    
        return $return;
    
    });