【问题标题】:Laravel 6 - Illuminate\Database\Eloquent\RelationNotFoundException Call to undefined relationshipLaravel 6 - Illuminate\Database\Eloquent\RelationNotFoundException 调用未定义的关系
【发布时间】:2019-10-21 06:36:04
【问题描述】:

我想将Supplier 表中的nama 列发送到Transaction_in 表,但出现此错误。

Illuminate\Database\Eloquent\RelationNotFoundException 调用 模型上未定义的关系 [get_transactions_in] [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,基于来自Supplier 表的id

【问题讨论】:

  • 为什么错误信息不清晰?它说在您的 Transaction_in 模型中没有具有该名称的方法,这是正确的,因为该方法是 Supplier 模型的一部分,不是吗?

标签: php laravel laravel-6


【解决方案1】:

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

Transaction_in 模型有get_suppliers 方法所以,

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

【讨论】:

    【解决方案2】:

    只需在下面更改您的控制器代码

    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”这样的关系

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-12
      • 2020-01-26
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 2020-01-29
      • 2016-01-22
      相关资源
      最近更新 更多