在Laravel 4中,当使用4.2文档中描述的多对多关系时,我如何让Laravel为我创建透视表?
我是否需要在我的迁移中为所涉及的两个模型添加一些东西?是否需要手动创建数据透视表的迁移?或者Laravel如何知道创建透视表?
到目前为止,我所做的一切就是将属性添加到两个相应的模型中,即:
class User extends Eloquent
{
public function roles()
{
return $this->belongsToMany('Role');
}
}
但是,这不会触发透视表的创建。我错过了哪一步?
为了扩展本的答案(我试图编辑它,但评论家说它添加了太多):
要添加外键约束,请确保在透视表中,如果alpha id未签名,alpha_id也未签名。这个迁移将在Ben的答案(2)之后运行,因为它改变了当时创建的表。
public function up()
{
Schema::table('alpha_beta', function(Blueprint $table)
{
$table->foreign('alpha_id')->references('id')->on('alpha');
$table->foreign('beta_id')->references('id')->on('beta');
});
}
我使用Jeffrey Way的Laravel-4-发电机或Laravel-5-发电机-扩展。
然后你可以使用这个artisan命令:
php artisan generate:pivot table_one table_two
看起来数据透视表确实需要手动创建(即Laravel不会自动创建)。以下是如何做到这一点:
1.)创建一个新的迁移,使用单数表名称按字母顺序(默认):
php artisan make:migration create_alpha_beta_table --create --table=alpha_beta
2.)在新创建的迁移中,将up函数更改为:
public function up()
{
Schema::create('alpha_beta', function(Blueprint $table)
{
$table->increments('id');
$table->integer('alpha_id');
$table->integer('beta_id');
});
}
3.)如果需要,添加外键约束。(我还没说到那一点)。
现在,要使用beta中的键对alpha表进行种子设定,您可以在AlphaTableSeeder中执行以下操作:
public function run()
{
DB::table('alpha')->delete();
Alpha::create( array(
'all' => 'all',
'your' => 'your',
'stuff' => 'stuff',
) )->beta()->attach( $idOfYourBeta );
}
事实上,我的问题很简单,但我找不到任何答案。 我使用的是Laravel Elotent,我有3张桌子: 一个数据透视表叫做: 我已经从我的公司对象中获得了,我正在尝试获取
我是vba新手,正在尝试使用vba和Excel创建。 我想创建像下面的图像作为输入表。 我试图添加、、、的行标签,值为、和。不为SHEET1生成任何透视表。
问题内容: 我需要从大约6000万行的数据集中创建一个2000列,大约30-50百万行的数据透视表。我曾尝试过旋转100,000行的数据块,但这种方法行得通,但是当我尝试通过先执行.append()然后再执行.groupby(’someKey’)。sum()来重组DataFrame时,我的所有内存都被占用了和python最终崩溃。 如何在有限的RAM量下处理如此大的数据? 编辑:添加示例代码 下面
问题内容: 我是一起定义关系和框架的新手,我只是习惯于原始SQL。我做了家庭作业(google + Laravel文档),但是我认为我不太了解它。 以下是相关信息:用户表: 挑战表: User_challenge_links Challenge_sub_categories 所以我的目标..用户->挑战。 关系: 一个用户有许多User_challenge_links 一个User_challen
我下面是一个教程,名为在laracast中的增量API由Jeffrey Way。 Laravel 4 faker类种子和Laravel 5.4之间的编码不同。 我仍然遵循教程“Seeders Reloated”中相同的代码行。现在,我只能说“LessonTagTableSeeder类不存在” 标签进料器 LessonTag表播种机 数据库搜索 我能够使用php artisan db:seed--c
我正在组装一个简单的购物车系统,使用Laravel和Vue.js,来出售照片。每张照片都有不同的尺寸,每个尺寸的价格都不同。 我有以下表格: 我正在使用Vue.js对我的购物车控制器进行API调用,以操纵购物车。当用户单击“添加到篮子”按钮时,它会传递照片id和大小id。当然,我想从数据库而不是客户端获取所选项目的价格,以防止任何无礼行为,这自然意味着查询pivot表。 我的问题是,使用传递给控制