php - Laravel 7单行回显belongsToMany关系
问题描述
我正在尝试显示表中brand_id
列的值brands
。到目前为止,这是我所做的:
汽车模型
use App\Brand;
class Car extends Model
{
public function brands(){
return $this->belongsToMany(Brand::class);
}
}
品牌型号
use App\Car;
class Brand extends Model
{
protected $fillable = [
'brand_name'
];
public function cars(){
return $this->hasMany(Car::class);
}
}
陈列室控制器
use App\Car;
class ShowroomController extends Controller
{
public function details($name){
$data = Car::where('car_name' , '=', $name)->first();
if ($data == null){
return redirect(route('index'));
}else{
return view('showroom')->with('detail', $data);
}
}
}
陈列室视图
@if (isset($detail))
{{ $detail }}
{{ $detail->brands->brand_name }} //this doesn't work
@endif
数据库
品牌表:
+----+------------+
| id | brand_name |
+----+------------+
| 1 | Brand1 |
| 2 | Brand2 |
+----+------------+
汽车表:
+----+----------+----------+
| id | car_name | brand_id |
+----+----------+----------+
| 1 | Car | 1 |
+----+----------+----------+
我在这一点上迷路了。这是处理belongstomany和hasmany关系的正确方法吗?谢谢。
解决方案
改变
return $this->belongsToMany(Brand::class)
;在
return $this->belongsTo(Brand::class);
汽车模型上
还将名称函数重命名为brand
. 因为汽车只有单一品牌 之后你可以做$detail->brand->brand_name
推荐阅读
- php - 我尝试通过 PDO 连接我的数据库,但在输出时出现错误
- angular - ngrx/效果的 Angular 6 jasmine 测试用例
- google-apps-script - 如何在 Google Apps 脚本中进行迭代时获取一组单元格的 getRange()?
- spring-boot - Thymeleaf 片段:将表单字段名称作为参数传递
- sql-server - 在 Services.msc 中哪个服务用于在 SQL Server 2017 中发送邮件?
- javascript - 如何以角度将js文件的功能调用到打字稿组件
- swift - 如何在 Swift 中将图像发布到 Instagram 故事?
- c# - 在 ValidationContext 的 ctor 中使用 Filter 和 ValidatorAttribute 会导致 System.ArgumentNullException
- php - 将mysql数据添加到HTML表中
- c# - Get inner JSON content as string without deserializing