запрос, чтобы получить только один элемент из целевого столбца в Laravel - PullRequest
0 голосов
/ 06 июня 2018

Есть ли запрос, чтобы получить только один элемент из целевого столбца?ниже не работает?

App\Job::whereNotNull('deleted_at')->pluck('customer_name')->first()

Я хочу получить только одно имя элемента из 'customer_name'

Теперь Laravel 5.6, используя ...

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Попробуйте вот так:

$job = \App\Job::selectRaw('customer_name')
    ->whereNotNull('deleted_at')
    ->first();

И используйте это как $job->customer_name

0 голосов
/ 06 июня 2018

Для этого есть встроенный метод: value('field')

App\Job::whereNotNull('deleted_at')->value('customer_name');

Документы: https://laravel.com/docs/5.6/queries, ищите «Извлечение одной строки / столбца из таблицы»

Если вы имели в виду только одно поле, но все еще в виде строк, вы можете использовать ->select('field').

И, поскольку вы хотите только выброшенные элементы, вы можете использовать ->onlyTrashed() вместо проверки ненулевого значения.

Мягкое удаление документации: https://laravel.com/docs/5.6/eloquent#deleting-models

0 голосов
/ 06 июня 2018

При использовании eloquent с помощью first вы получите один элемент, первую запись, соответствующую вашему запросу.После этого вы можете получить доступ к свойству этого элемента:

// This will give you an instance of App\Job (or null)
$job = App\Job::whereNotNull('deleted_at')->first();

// You can then access the customer_name property on the object
$job->customer_name;

Если вы хотите извлечь этот единственный столбец при выполнении запроса, вы можете передать массив столбцов в first.

App\Job::whereNotNull('deleted_at')->first(['customer_name']);

Предполагая, что в вашей модели используется черта SoftDeletes, ваш запрос автоматически добавит дополнительную проверку ко всем вашим запросам, чтобы убедиться, что deleted_at равно нулю .Поэтому, когда вы делаете ->whereNotNull('deleted_at'), вы добавляете дополнительное предложение, чтобы гарантировать, что записи также не равны нулю, поэтому у вас не будет никаких возвращаемых записей.

Если вы хотите посмотреть только на удаленныезаписи, вы можете использовать onlyTrashed():

App\Job::onlyTrashed()->first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...