Laravel: вызов неопределенной связи [форма] в модели [Приложение \ Счет-фактура] - PullRequest
0 голосов
/ 05 августа 2020

Я хочу получить параметр "$ invoice2-> form-> form" в поле зрения. Счета и формы находятся в других таблицах и моделях, но связаны с отношениями laravel и внешними ключами в миграциях. Имя таблицы - это формы, а имя столбца - это форма. Название модели - Форма. Теперь я получаю эту ошибку. Вызов неопределенной связи [форма] в модели [App \ Invoice]. в этой функции

$invoice2 = Invoice::with('form')->find($invoice->id);

Это остальная часть моего контроллера с ненужными элементами:

    public function show(Invoice $invoice)
    {
        $users = User::all('showname','id');
        $forms = Form::all('id', 'form');
        $currencys = Currency::all('id', 'currency', 'course'); 
        $query = DB::table('forms')
            ->join('invoices', 'forms.id', '=', 'invoices.form_id');

        $query1 = DB::table('currencys')
            ->join('invoices', 'currencys.id', '=', 'invoices.currency_id');
      
 $invoice2 = Invoice::with('form')->find($invoice->id); 
        
               
        
        return view('invoices.show', compact('users', 'forms', 'currencys', 'invoice', 'query', 'query1', 'invoice2'));
        
        
        
    }

Это начало файла контроллера счета:

namespace App\Http\Controllers;
use Kyslik\ColumnSortable\Sortable;    
use App\Invoice;
use Illuminate\Http\Request;
use App\User;
use App\Proform;
use App\Form;
use App\Currency;
use DB; 

Это моя модель счета:

<?php


namespace App;

use Kyslik\ColumnSortable\Sortable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Invoice extends Model
{
    /**
     * The attributes that are mass assignable.
     *  
     * @var array
     */
    use SoftDeletes;
    use Sortable;
    
    
    protected $table = 'invoices';

    
    protected $fillable = [
        'invoicenumber', 'invoicedate', 'id', 'selldate', 'user_id', 'paymentmethod', 
        'paymentdate', 'status', 'comments', 'city', 'paid',  'autonumber', 'automonth', 'autoyear', 'name',
         'PKWIU', 'quantity', 'unit', 'netunit', 'nettotal',
         'VATrate', 'grossunit', 'grosstotal', 'form_id', 'currency_id',
    ];
    
    public $sortable = [ 'invoicenumber', 'invoicedate', 'id', 'selldate', 'user_id', 'paymentmethod', 
        'paymentdate', 'status', 'comments', 'city', 'paid',  'autonumber', 'automonth', 'autoyear', 'name',
         'PKWIU', 'quantity', 'unit', 'netunit', 'nettotal',
         'VATrate', 'grossunit', 'grosstotal', 'form_id', 'currency_id',
                       ];
    
    protected $dates = ['deleted_at'];
    public $primaryKey = 'id';
    
        public function user()
    {
        return $this->belongsTo('App\User');
    }

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

         public function currency()
    {
        return $this->hasOne('App\Currency');
    }
   
        public function proform()
    {
        return $this->belongsTo('App\Proform');
    } 
    
}

Это моя модель формы:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Form extends Model
{
    //
    
        protected $fillable = [
        'id', 'form', 
    ];
    
        public function invoice()
    {
        return $this->hasMany('App\Invoice');
    }  
    
    
    
        public function proform()
    {
        return $this->belongsTo('App\Proform');
    }
}
...