PDe*_*evH 5 table-relationships laravel
对于将相关数据传递给视图这一看似简单的问题,我找不到解决方案。我有一个属于“地区”的模型“公司”。我belongsTo在我的公司模型中创建了关系
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Company extends Model
{
protected $table = 'companies';
protected $primaryKey = 'Comp_id';
protected $fillable = ['industrylink_id', 'region_id','companyname','contactno','regno','vatno','salaryroll','numemployees'];
public function employees(){
return $this->hasMany('App\Models\Employee');
}
public function region(){
return $this->belongsTo('App\Models\Region');
Run Code Online (Sandbox Code Playgroud)
还有hasManyRegion 模型中的关系:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Region extends Model
{
protected $table = 'regions';
public function companies(){
return $this->hasMany('App\Models\Company');
}
}
Run Code Online (Sandbox Code Playgroud)
我的show控制器成功地将会话行的变量传递给视图,但是我想使用以下内容访问相关表数据的那一刻......(表'区域'与列'区域')
<p>Region: {{ $company->region->region }}</p> -->
Run Code Online (Sandbox Code Playgroud)
...我得到了错误
“试图获取非对象的属性:(视图:...”
我已经将我的模型位置更改为 app\Models 并且我已经在模型和控制器中进行了所有必要的命名空间更改,以及在 composer.json 中的自动加载。我做了一个 composer dump & config:clear 和所有其他 mvc 引用工作。
我没有为相关表创建迁移,因为这些表存在并且其中包含标准参考数据。我假设在模型中创建的关系就足够了?
我很感激一些帮助。
您是否确保在 Laravel 模型关系方法中声明了现有表外键?我在你的Company模型中看到你声明了一个$primaryKey. Region在你的表中引用 a 的外键是什么companies?在方法的第二个参数中声明它belongsTo。例子:$this->belongsTo('App\Models\Region', 'unusual_region_id');