Laravel 4多对多和单向多态
我希望几个模型之间的关系是多对多的,并且在一个方向上是多态的,这就是我现在解决这个问题的方式,但它确实让我感到困扰,我松开了所有的attach(),detach()等功能,这应该是一个简单的方法。找不到任何文档、示例或任何东西,我所看到的都是非常基本的Laravel 4多对多和单向多态,laravel,many-to-many,laravel-4,eloquent,polymorphism,Laravel,Many To Many,Laravel 4,Eloquent,Polymorphism,我希望几个模型之间的关系是多对多的,并且在一个方向上是多态的,这就是我现在解决这个问题的方式,但它确实让我感到困扰,我松开了所有的attach(),detach()等功能,这应该是一个简单的方法。找不到任何文档、示例或任何东西,我所看到的都是非常基本的 <?php use Illuminate\Database\Eloquent\Collection; class Category extends Eloquent { /* public function categorizab
<?php
use Illuminate\Database\Eloquent\Collection;
class Category extends Eloquent {
/*
public function categorizables() {
return $this->morphTo();
}
*/
public function categorizables(){
$categorizables = new Collection();
$categorizableRows = DB::table('categorizables')->where('category_id', $this->id)->get();
foreach ($categorizableRows as $categorizable) {
$class = $categorizable->categorizable_type;
$categorizables->add($class::find($categorizable->categorizable_id));
}
return $categorizables;
}
}
class Article extends Eloquent {
/*
public function categories() {
return $this->morphMany('Category','categorizable');
}
*/
public function categories(){
$categoryRows = DB::table('categorizables')
->where('categorizable_id', $this->id)
->where('categorizable_type', get_class($this))->get();
$categoryIds = array();
foreach ($categoryRows as $category) {
$categoryIds[] = $category->id;
}
return Category::find($categoryIds);
}
}
class Person extends Eloquent {
/*
public function categories() {
return $this->morphMany('Category','categorizable');
}
*/
public function categories(){
$categoryRows = DB::table('categorizables')
->where('categorizable_id', $this->id)
->where('categorizable_type', get_class($this))->get();
$categoryIds = array();
foreach ($categoryRows as $category) {
$categoryIds[] = $category->id;
}
return Category::find($categoryIds);
}
}
/*
Table categorizables
id
category_id
categorizable_type (Possible "Article" or "Person" in this case)
categorizable_id (id of Article or Person)
Table categories
id
name
Table articles
id
name
content
Table People
id
name
content
*/
你找到解决方案了吗?我也有同样的问题,不,恐怕我没有,在使用L4大约1个半月后,我会说它缺少很多东西,这使得开发非琐碎的东西比使用CI或Yii更难…我正在创建解决方案:这不是一个更好的解决方案,但很有效