Laravel从MySQL列中获得明显的价值不起作用

时间:2019-02-25 20:15:10

标签: php laravel laravel-blade

我试图从一个列的下拉列表中获得不同的值,我在控制器中尝试了这些查询,但结果却空了。

控制器查询1尝试

public function create()
{
    $categories = Category::all();
    $status = Category::all()->groupby('SM')->get();

    return view('admin.categories.create', compact('categories', 'status'));
}

查询2

$status = Category::distinct()->get(['SM']);

查看

<label>Distinct</label>
<select  name="dropdown">
    <option value="{{$status}}"></option>
</select>
{{$status}}

我试图在下拉列表中获得一列的独特价值。

2 个答案:

答案 0 :(得分:3)

考虑SM您的列名。在Eloquent中,您可以尝试以下操作:

$status = Category::select('SM')->distinct()->get();

或采摘:

$status = Category::distinct('SM')->pluck('SM');

此外,您还应该在选项标签内添加一些值,例如:

<option value="{{ $status }}"> {{ $status }}</option>

答案 1 :(得分:1)

如果您进行了Category:all()->groupBy()->get()的操作,您将被应用到select * from categories的集合助手中,则不会进行MySQL查询。

如果您想申请MySQL Query,则需要这样做

Category::select('SM')->groupBy('SM')->get();

Category::select('SM')->distinct()->get();