Laravel 6 - Illuminate\Database\Eloquent\RelationNotFoundException 调用未定义关系

Laravel 6 - Illuminate\Database\Eloquent\RelationNotFoundException Call to undefined relationship

我想将 nama 列从 Supplier table 发送到 Transaction_in table,但是我得到了这个错误。

Illuminate\Database\Eloquent\RelationNotFoundException Call to undefined relationship [get_transactions_in] on model [App\Transaction_in].

Transaction_in型号

class Transaction_in extends Model
{
    protected $guarded = [];

    public function get_suppliers(){
        return $this->belongsTo(Supplier::class, 'Supplier_id');
    }
}

供应商模型

class Supplier extends Model
{
    protected $guarded = [];

    public function get_transactions_in(){
        return $this->hasMany(Transaction_in::class);
    }
}

Transaction_in 控制器

public function index()
    {
        $transaction_ins = Transaction_in::with('get_transactions_in')->get();
        return view('transactionsIN.index', compact('transaction_ins', $transaction_ins, 'supplierList'));
    }

外键是 Supplier_id 基于 id 来自 Supplier table.

你在 with 中调用了错误的关系应该是 get_suppliers 而不是 get_transactions_in

Transaction_in 模型有 get_suppliers 方法所以,

$transaction_ins = Transaction_in::with('get_suppliers')->get();

只需将您的控制器代码更改为以下

public function index()
    {
        $transaction_ins = Transaction_in::with('get_suppliers')->get();
        return view('transactionsIN.index', compact('transaction_ins', $transaction_ins, 'supplierList'));
    }

你得到一个错误,因为在你的 Transaction_in 模型中没有像 "get_transactions_in" 这样的关系