簡體   English   中英

Laravel pluck()方法不起作用

[英]Laravel pluck() method not working

我正在創建一個cms類型的應用程序。 為此,在為用戶插入其角色(即管理員,訂閱者和作者)時,我使用pluck()方法從角色表中檢索數據並在選擇下拉列表中將角色顯示為數組,但問題是它無法正常工作,因為它說的是[htmlspecialchars()期望參數1為字符串,給定數組]請幫助我如何解決此問題,或者是否可以使用其他方法代替pluck?

AdminPostsController:

public function create()
{
    $roles = Role::pluck('name', 'id')->all();

    return view('admin.users.create', compact('roles'));
}

創建頁面(create.blade.php):

<div class = "form-group">
{!! Form::label('role_id', 'Role:') !!}
{!! Form::text('role_id', array(''=>'Choose Your Role')+$roles, null, 
['class'=>'form-control']) !!}
</div>

請幫忙!

您的問題不是pluck方法,而是刀片視圖:

<div class = "form-group">
{!! Form::label('role_id', 'Role:') !!}
{!! Form::text('role_id', array(''=>'Choose Your Role')+$roles, null, 
['class'=>'form-control']) !!}
</div>

Form::text方法期望將字符串作為第二個參數,您給了一個數組。

如果要選擇,請使用Form::select代替。

AdminController應該看起來像:

public function create()
{
    $roles = Role::pluck('name', 'id')->toArray();

    return view('admin.users.create', compact('roles'));
}

並使用如下所示的刀刃形式:

{!! Form::select('role_id', [null => 'Choose your role'] + $roles, null,
 ['class' => 'form-control']) !!}

您也可以通過將某些內容傳遞給Form :: select()的第3個位置來使用默認值。 例如。

{!! Form::select('INPUT_NAME', ['your' => 'array', 'with' => 'options], DEFAULT_VALUE, ['class' => 'example class',]]) !!}

Laravel集體文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM