php - 找不到 Laravel 单元测试类

标签 php laravel namespaces laravel-5 composer-php

<?php 

use App\Repositories\APIModels\SalesError as SalesError;
use App\Repositories\APIModels\Sales as Sales;

class SalesErrorTest extends \TestCase {

    public function setUp()
    {
        parent::setUp();
    }

    public function testCreate()
    {
        $sales_error = new SalesError;
        $sales_error->sale_id = 5;
        $sales_error->error_type = 3;
        $sales_error->description = 'Unknown error occured';
        $sales_error->resolved_at = date('Y-m-d H:i:s');
        $this->assertTrue($sales_error->save());
    }

    public function testRelation()
    {
        $sales = Sales::find(45)->errors();
        var_dump($sales);
    }
}

在上面的测试中,我运行 testCreate它工作正常。但是当我运行其他方法时,它说

PHP Fatal error: Class 'SalesError' not found in /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php on line 878



销售模式
   /**
     * Has Many relation with SalesError
     * 
     * @return object
     */
    public function errors()
    {
        return $this->hasMany('SalesError', 'sale_id', 'sale_id');
    }

销售错误模型
  /**
     * Has many to one relation with Sales Model
     * 
     * @return void
     */
    public function sales()
    {
        $this->belongsTo('Sales', 'sale_id');
    }

最佳答案

您应该通过完整的 namespace到关系。

此外,您还缺少 return声明在 sales关系。

public function errors()
{
    return $this->hasMany('App\Repositories\APIModels\SalesError', 'sale_id', 'sale_id');
    // or
    return $this->hasMany(SalesError::class, 'sale_id', 'sale_id');
}

public function sales()
{
    return $this->belongsTo(Sales::class, 'sale_id');
}

关于php - 找不到 Laravel 单元测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34216099/

相关文章:

php - SQL如果随机结果的值小于X,则返回更多随机结果,直到达到X值?

php - 将标题 ('Content-Type: image/png' ) 放在任何地方

php - FedEx express cargo API 错误 : "Account and meter number aren' t consistent"

mysql - 迁移表是否支持汉字?

php - 拉维尔 |检索具有关系且特定 ID 除外的集合

namespaces - 如何将字符串加载到当前命名空间(不是核心)?

javascript - 来自 JavaScript 的 Yii 值

mysql - Laravel Sail 重建默认数据库

PHP 命名空间不需要文件?

php - 命名空间更改后的 Laravel link_to_route