Laravel 5.5 中的数据透视列访问器
Accessor for Pivot-Column in Laravel 5.5
我的数据库是这样的:
菜肴 (id, image)
dish_location (location_id, dish_id, dishcard_sharing)
地点(身份证,姓名)
列image和dishcard_sharing都是像/images/1234/123123.jpg这样的路径。对于 dishes.image-column,我刚刚添加了一个访问器来添加 S3-url。现在我也需要 dish_location.dishcard_sharing 列 这样的访问器。但是在哪里实施呢?
<?php
namespace App\Models;
use DB;
use Illuminate\Database\Eloquent\Model;
use Grimzy\LaravelMysqlSpatial\Types\Point;
use App\Models\DishLocationPivot;
class Dish extends Model
{
public $table_name = 'dishes';
public function locations() {
return $this
->belongsToMany('App\Models\Location', 'dish_location', 'dish_id', 'location_id')
->withPivot(['dishcard_sharing']);
}
/* Accessors */
public function getImageAttribute($value) {
return config('filesystems.store_url_prefix') . $value;
}
public function scopeFinalize($query) {
// Dish Card?
$query->addSelect('dish_location.dishcard_sharing AS dishcard_sharing');
return $query;
}
}
一个选项是创建一个新的 class 来扩展 Pivot:
use Illuminate\Database\Eloquent\Relations\Pivot;
class DishLocation extends Pivot {
...
}
我的数据库是这样的:
菜肴 (id, image)
dish_location (location_id, dish_id, dishcard_sharing)
地点(身份证,姓名)
列image和dishcard_sharing都是像/images/1234/123123.jpg这样的路径。对于 dishes.image-column,我刚刚添加了一个访问器来添加 S3-url。现在我也需要 dish_location.dishcard_sharing 列 这样的访问器。但是在哪里实施呢?
<?php
namespace App\Models;
use DB;
use Illuminate\Database\Eloquent\Model;
use Grimzy\LaravelMysqlSpatial\Types\Point;
use App\Models\DishLocationPivot;
class Dish extends Model
{
public $table_name = 'dishes';
public function locations() {
return $this
->belongsToMany('App\Models\Location', 'dish_location', 'dish_id', 'location_id')
->withPivot(['dishcard_sharing']);
}
/* Accessors */
public function getImageAttribute($value) {
return config('filesystems.store_url_prefix') . $value;
}
public function scopeFinalize($query) {
// Dish Card?
$query->addSelect('dish_location.dishcard_sharing AS dishcard_sharing');
return $query;
}
}
一个选项是创建一个新的 class 来扩展 Pivot:
use Illuminate\Database\Eloquent\Relations\Pivot;
class DishLocation extends Pivot {
...
}