簡體   English   中英

使用Eloquent和Laravel訪問特定的列

[英]Accessing specific column using Eloquent & Laravel

我正在通過構建一個應用程序來教我自己Laravel,其中該應用程序除其他功能外,還可以從默認的Wordpress表中獲取數據,並且遇到了我不確定如何解決的最佳實踐問題。

對於用戶數據庫,我有一個非常簡單的模型,如下所示:

namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
    public $table='wp_users';
    protected $primaryKey='user_id';
}

我可以使用$users = User::all();這樣的行將其提取到數組中 在我的控制器中,然后我可以通過多種不同方式將其發送到視圖中。

現在; 我的最佳做法問題與從網站上的數據庫的特定列一組列訪問多個值有關。

假設我想創建一個下拉列表,其中包含來自數據庫的display_name作為...以及顯示的文本,以及user_login作為在表單中傳遞的選項值。

在“過去的好日子”中,我可以使用諸如foreach語句之類的方法來執行此操作,該語句將<?php echo $whatever; ?> <?php echo $whatever; ?>放入html中的相關位置,但這是一個非常丑陋的解決方案。 我的意思是...看看這些東西:

<?php foreach ($users as $key => $value) {
    echo "<option value='" . $key . "'>" . $value['name'] . "</option>";
} ?>

使用Eloquent,我可以做類似Form::select('size', array('L' => 'Large', 'S' => 'Small'))的事情,而且我敢肯定有一種方法可以傳遞數組放入該語句中,但這恰恰是我的問題...我似乎無法弄清楚該如何做。 如何告訴Form語句將$users[0]->display_name用於第一個條目,將$users[1]->display_name用於第二個條目,等等...?

在您的控制器中

$users = User::get()->pluck('name','user_id');

以你的形式

Form::select('size', $users)

這將只是為您建立下拉列表。

假設您已將數據傳遞到視圖,並使用Blade作為模板引擎:

<form method="POST" action="" id="form">
    @foreach($formFields as $key => $val)
        <input name="{{ $key  }}" value=" {{ $val }}">
    @endforeach
</form>

您可以通過從Collective安裝https://laravelcollective.com/來使用舊的Laravel Form軟件包。

安裝完成后,您可以使用以下命令生成一個數組,該數組將使用user_id作為每個選擇選項的值,並使用display_name作為選項文本:

$users = User::where('something', 'something')->lists('display_name', 'user_id');

然后在刀片模板中:

{!! Form::select('users', $users) !!}

暫無
暫無

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

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