Reputation: 9024
<?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);
}
}
In the above test when i run testCreate
it works fine. But when i run other method it says
PHP Fatal error: Class 'SalesError' not found in /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php on line 878
Sales Model
/**
* Has Many relation with SalesError
*
* @return object
*/
public function errors()
{
return $this->hasMany('SalesError', 'sale_id', 'sale_id');
}
Sales Error Model
/**
* Has many to one relation with Sales Model
*
* @return void
*/
public function sales()
{
$this->belongsTo('Sales', 'sale_id');
}
Upvotes: 0
Views: 2433
Reputation: 15372
You should pass the full namespace
to the relationships.
Also, you are missing the return
statement at the sales
relationship.
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');
}
Upvotes: 1