php - query - where method laravel




Laravel 5.2-método pluck() retorna array (3)

No Laravel 5.1+, você pode usar o valor () em vez de arrancar.

Para obter a primeira ocorrência, você pode usar

DB::table('users')->value('name');

ou usar,

DB::table('users')->where('id', 1)->pluck('name')->first();

Estou tentando atualizar meu projeto L5.1 -> L5.2. No guia de atualização, há uma coisa que não está clara para mim:

O método de lists nos objetos Collection, construtor de consultas e Eloquent query builder foi renomeado para pluck . A assinatura do método permanece a mesma.

Tudo bem, renomear a refatoração de lists() para pluck() não é um problema. Mas o que com o método pluck() útil que estava em L5.0 e L5.1?

Na documentação 5.0 :

Recuperando uma única coluna de uma linha

$name = DB::table('users')->where('name', 'John')->pluck('name');

Qual é a alternativa para o método pluck() antigo na L5.2?

ATUALIZAR:

Exemplo:

var_dump(DB::table('users')->where('id', 1)->pluck('id'));

L5.1:

// int(1)

L5.2:

// array(1) { [0]=> int(1) }

A alternativa atual para pluck() é value() .


laravel pluck retorna uma matriz

se sua consulta for:

 $name = DB::table('users')->where('name', 'John')->pluck('name');

então a matriz é assim (chave é o índice do item. valor incrementado automaticamente):

[
    1 => "name1",
    2 => "name2",
    .
    .
    .
    100 => "name100"
]

mas se você faz assim:

$name = DB::table('users')->where('name', 'John')->pluck('name','id');

então a chave é o índice real no banco de dados.

key||value
[
    1 => "name1",
    2 => "name2",
    .
    .
    .
    100 => "name100"
]

você pode definir qualquer valor como chave.