Как объединить две таблицы по красноречивой модели laravel - PullRequest
0 голосов
/ 17 мая 2019

У меня есть две таблицы: одна csps, другая - транзакция, и она имеет модель laravel.Я хочу присоединиться к ним по красноречивой модели Laravel.Я не хочу использовать DB::csps вот так.

csps Таблица

'ko_id', 
'ko_name', 
'account_number'

Таблица транзакций

'transaction_date_time', 
'limit_conf_by', 
'ko_id', 
'opening_limit', 
'amount', 
'closing_limit', 
'is_cheque_issued', 
'lot_id', 
'lot_amount',
'deposite_account',
'lot_date',

Я хочу отобразить детали транзакции с подробностями csps.Я знаю, как присоединиться к базе данных, но я хочу показать по красноречивой модели laravel.Я не знаю, как соединить модель.

Я пробовал

это модель транзакции

namespace App;

use Illuminate\Database\Eloquent\Model;

class Transaction extends Model
{
    protected $table = 'transactions';
    public $timestamps = false;

    // protected $attributes = [
    //     'delayed' => false,
    // ];

    protected $fillable = [
        'transaction_date_time', 'limit_conf_by', 'ko_id', 'opening_limit', 'amount', 'closing_limit', 'is_cheque_issued', 'lot_id', 'lot_amount','deposite_account','lot_date',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    // protected $hidden = [
    //     'password', 'remember_token',
    // ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'transaction_date_time' => 'datetime',
    ];

    public function csp(){
        return $this->belongsTo('App\Csp');
    }
 }

это модель csp

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;


class Csp extends Model
{
    use SoftDeletes;

    protected $table = 'csps';
    protected $primaryKey = 'ko_id';
    public $incrementing = false;
    public $timestamps = false;

    protected $fillable = [
        'ko_id', 'ko_name', 'account_number'
    ];
    public function transaction(){
        return $this->hasMany('App\Transaction');
    }

}

1 Ответ

0 голосов
/ 17 мая 2019

С Laravel eloquent это очень просто. Вам не нужно явно писать команды соединения. Вы можете использовать динамическое свойство Laravel.

См. Документы Laravel .

Код будет выглядеть так:

<?php

$transaction = Transaction::find(20); // assuming 20 is one of the IDs in your database
$csp_details = $transaction->csp;
dd($csp_details); // you would get your csp details here for rows.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...