Laravel 5 Laravel 5种不同的广告类型

Laravel 5 Laravel 5种不同的广告类型,laravel-5,eloquent,Laravel 5,Eloquent,我在分类广告网站工作,我会有不同类型的广告。会有汽车,房地产等。所有类型都将具有特定于类型的属性。例如,房地产广告将具有汽车不需要的平方米属性 我为这种情况创建了数据库模型,但不知道如何判断这种关系是否具有说服力。还有没有更好的方法来解决这个问题 广告台 -身份证 -日期 -广告类型标识 汽车表 -身份证 -头衔 -马力 房地产表 -身份证 -头衔 -正方形您所寻找的被称为“多态关系” 如果您按照上的示例,简单地将您的表替换为他们的表,如下所示 cars id - integer

我在分类广告网站工作,我会有不同类型的广告。会有汽车,房地产等。所有类型都将具有特定于类型的属性。例如,房地产广告将具有汽车不需要的平方米属性

我为这种情况创建了数据库模型,但不知道如何判断这种关系是否具有说服力。还有没有更好的方法来解决这个问题

广告台 -身份证 -日期 -广告类型标识

汽车表 -身份证 -头衔 -马力

房地产表 -身份证 -头衔
-正方形

您所寻找的被称为“多态关系”

如果您按照上的示例,简单地将您的表替换为他们的表,如下所示

cars
    id - integer
    title - string
    horse_power - integer

realestates
    id - integer
    title - string
    squares - integer

ads
    id - integer
    description - text
    adable_id - integer
    adable_type - string
你可以做你想做的事。所以你只需要

$ads = Ad::with('adable')->get()
那将是所有广告的集合(包括汽车和房地产)。然后你会想要创建3个刀片,比如

ad_list.blade.php
ad_car.blade.php
ad_realestate.blade.php
在你的广告列表视图中,你会看到

@foreach ($ads as $ad)
  @include('ad_'.snakecase(classbasename($ad->adable_type)))
@endforeach
然后在
ad\u car
ad\u real estate
中,按照您的意愿格式化内容

//car view
$ad->adable->title
$ad->adable->horse_power
这是一个奇怪的概念,我试了几次才把它弄对。我发现这有助于解释在不同视图中显示多态关系的概念(大约从8:30开始)。如果你感到困惑,请仔细检查一下