Как использовать подстроку с laravel eloquent? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть 2 связанные таблицы, проблема в том, что в одной из них приводятся клиенты каждого пользователя, но код клиента основан в основном на 4 цифрах, проблема в том, что есть много пользователей, которые имеют более 4 цифр 8 или 9что это представляет вашу задачу в компании.Но мне нужно принести только первые 4, которые мне нужны, чтобы установить связь с таблицей и иметь возможность привести только название компании

Я имею дело с substring в sql, как это

$client = DB::connection('dpnmwin')->table('nmtrabajador')->select('SUBSTRING'('COD_UND', 1, 4))->where('CONDICION', '=', 'A')->get()

но это помечает мне ошибку в том же редакторе кода.

Как я могу сделать это с использованием подстроки или иным образом?

Модель Сотрудник

class Employee extends Model
{
    protected $connection = 'dpnmwin';

    protected $table = 'nmtrabajador';

    protected $primaryKey = 'CODIGO';

    public function client(){

        return $this->belongsTo('App\Client', 'COD_UND');

    }

    public function position(){

        return $this->belongsTo('App\Position', 'COD_CARGO');

    }

}

Модель клиента

class Client extends Model
{
    protected $connection = 'dpnmwin';

    protected $table = 'nmundfunc';

    protected $primaryKey = 'CEN_CODIGO';

    public function employee(){

        return $this->hasMany('App\Employee');

    }

}

Файл list.blade.php

 @foreach ($users as $user)
       <tr>
           <td>{{$user->CEDULA}}</td>
           <td>{{$user->NOMBRE}}</td>
           <td>{{$user->APELLIDO}}</td>
           <td>{{$user->EMAIL}}</td>
           <td>{{$user->position->CAR_DESCRI}}</td>
           <td>{{$user->client->CEN_DESCRI}}</td>
           <td><a href="{{ route('detailUser', ['user_id' => $user->CODIGO]) }}"><i class="fas fa-user"></i></a></td>
      </tr>
 @endforeach

1 Ответ

0 голосов
/ 28 мая 2018

Используйте \DB::raw() для select:

$client = DB::connection('dpnmwin')->
          table('nmtrabajador')->
          select(\DB::raw('SUBSTRING(COD_UND, 1, 4) as COD_UND'))->
          where('CONDICION', '=', 'A')->
          get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...