Tar*_*rma 8 php mysql datatable laravel laravel-5
Offer.php#模型
use App\OfferCategory;
use App\OfferCountries;
use App\OfferCreative;
use App\OfferTools;
use App\OfferTraffic;
class Offer extends Model {
public function offer_countries() {
return $this->belongsToMany(OfferCountries::class);
}
public function offer_categories() {
return $this->belongsToMany(OfferCategory::class);
}
public function offer_creatives() {
return $this->hasMany(OfferCreative::class);
}
public function offer_tools() {
return $this->hasMany(OfferTools::class);
}
public function offer_traffic() {
return $this->hasMany(OfferTraffic::class);
}
public function platforms() {
return $this->hasMany(Platform::class);
}
Run Code Online (Sandbox Code Playgroud)
}
OfferController.php
public function getMediaData() {
// $model = Offer::with('offer_traffic');
// return DataTables::eloquent($model)
// ->addColumn('traffic', function (Offer $user) {
// return $user->offer_traffic->map(function($post) {
// return str_limit($post->allowed_traffic, 30, '...');
// })->implode('<br>');
// })
// ->toJson();
return datatables(DB::table('offers'))->toJson();
}
Run Code Online (Sandbox Code Playgroud)
我想使用offer.php中提供的所有关系表和数据表中的图像。我已经尝试使用控制器中的注释代码,但是无法获取,请帮助我知道我在哪里做错了。
OfferCountries.php #模型
使用App \ Offer;
class OfferCountries extends Model {
function offers() {
return $this->belongsToMany(Offer::class);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我会做的,
在 Offer.php 中
class Offer extends Model {
public function offer_countries() {
return $this->hasMany(OfferOfferCountries::class,'offer_id','id');
}
public function offer_categories() {
return $this->hasMany(OfferOfferCategories::class,'offer_id','id');
}
public function offer_creatives() {
return $this->hasMany(OfferCreative::class,'offer_id','id');
}
public function offer_tools() {
return $this->hasMany(OfferTools::class,'offer_id','id');
}
public function offer_traffic() {
return $this->hasMany(OfferTraffic::class,'offer_id','id');
}
public function platforms() {
return $this->hasMany(Platform::class,'offer_id','id');
}
}
Run Code Online (Sandbox Code Playgroud)
在 OfferOfferCountries.php 中
class OfferOfferCountries extends Model {
public function countryDetail(){
return $this->belongsTo(OfferCountries::class,'offercountry_id','id');
}
}
Run Code Online (Sandbox Code Playgroud)
在 OfferOfferCategory.php 中
class OfferOfferCategory extends Model {
public function categoryDetail(){
return $this->belongsTo(OfferCategory::class,'offercategory_id','id');
}
}
Run Code Online (Sandbox Code Playgroud)
现在在控制器中
public function getMediaData() {
$data = Offer::with('offer_countries.countryDetail','offer_categories.categoryDetail','offer_creatives','offer_tools','offer_traffic','platforms')->get();
echo '<pre>';
print_r($data);
}
Run Code Online (Sandbox Code Playgroud)
这应该给你一个包含所有内容的对象数组。您可以使用数据透视表,但我喜欢这种方式。
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |