Laravel-软删除的严重问题

Laravel-软删除的严重问题,laravel,laravel-5,eloquent,laravel-5.1,Laravel,Laravel 5,Eloquent,Laravel 5.1,我有两个型号,车辆和制造商。制造商与车辆之间存在一对多关系。我已在这两种型号上启用了软删除功能。我有一个包含所有车辆的html表格,在html表格中显示标题、slug、制造商id和删除的laravel默认字段 现在,当我从页面中软删除一辆车时,一切正常,它显示所有车辆+软删除的车辆。同样,如果我删除该车辆的制造商,我仍然会看到所有制造商+软删除制造商。现在,当我回到vehicles页面时,出现了一个错误 Trying to get property of non-object 这意味着它正在

我有两个型号,车辆和制造商。制造商与车辆之间存在一对多关系。我已在这两种型号上启用了软删除功能。我有一个包含所有车辆的html表格,在html表格中显示标题、slug、制造商id和删除的laravel默认字段

现在,当我从页面中软删除一辆车时,一切正常,它显示所有车辆+软删除的车辆。同样,如果我删除该车辆的制造商,我仍然会看到所有制造商+软删除制造商。现在,当我回到vehicles页面时,出现了一个错误

Trying to get property of non-object 
这意味着它正在寻找不再存在的制造商id。下面是我对所有车辆的有力询问

// Vehicle Controller
/* This query basically gets all fields in the first column from vehicle model
   and all the fields in the second column from manufacturer model*/

   $this->vehicle->getAllWithTrash( 
       ['id', 'title', 'description', 'is_active', 'manufacturer_id', 'created_at', 'updated_at', 'deleted_at'],
       ['title', 'id'] 
   ) );


// Eloquent Repository
   public function getAllWithTrash( $columns1 = array('*'), $columns2 = array('*') ){

        return Vehicle::withTrashed()->with(['manufacturer' => function($q) use ($columns2){
                $q->select($columns2);
        }])->get($columns1)->toJson();

    }
因此,我想修改此查询,以便它获取所有车辆+软删除车辆以及所有制造商,无论它们是否软删除。

请参见此功能

如上所述,软删除模型将自动排除 从查询结果。但是,您可以强制软删除的模型 在查询中使用withTrashed方法显示在结果集中:

$flights=App\flights::withTrashed->where'account\u id',1->get

withTrashed方法也可用于关系查询:

$flight->history->withTrashed->get

试试这个:

// Eloquent Repository
   public function getAllWithTrash( $columns1 = array('*'), $columns2 = array('*') ){

        return Vehicle::withTrashed()->with(['manufacturer' => function($q) use ($columns2){
                $q->withTrashed()->select($columns2);
        }])->get($columns1)->toJson();

    }
查看函数

如上所述,软删除模型将自动排除 从查询结果。但是,您可以强制软删除的模型 在查询中使用withTrashed方法显示在结果集中:

$flights=App\flights::withTrashed->where'account\u id',1->get

withTrashed方法也可用于关系查询:

$flight->history->withTrashed->get

试试这个:

// Eloquent Repository
   public function getAllWithTrash( $columns1 = array('*'), $columns2 = array('*') ){

        return Vehicle::withTrashed()->with(['manufacturer' => function($q) use ($columns2){
                $q->withTrashed()->select($columns2);
        }])->get($columns1)->toJson();

    }