我的结构如下:
3张表格:电影、演员、类型
电影表模式:
Schema::create('movies', function (Blueprint $t) {
$t->increments('id');
$t->string('title');
$t->integer('genre_id')->unsigned();
$t->foreign('genre_id')->references('id')->on('genres');
$t->string('genre');
$t->timestamps();
});
类型表架构:
Schema::create('genres', function (Blueprint $t) {
$t->increments('id');
$t->string('name');
$t->timestamps();
});
演员表架构:
Schema::create('actors', function (Blueprint $t) {
$t->increments('id');
$t->string('name');
$t->timestamps();
});
电影模组:
public function genre()
{
return $this->belongsTo('App\Genre');
}
public function actor()
{
return $this->belongsToMany('App\Actor');
}
体裁模态:
public function movie()
{
return $this->hasMany('App\Movie');
}
演员模式:
public function movie()
{
return $this->belongsToMany('App\Movie');
}
表格:
<form method="post" action="{{ route('movies.insert') }}">
<input type="text" name="movieName" id="movieName">
<input type="text" name="actorName" id="actorName">
<input type="text" name="genre" id="genre">
<button type="submit">Add</button>
</form>
我使用以下控制器方法从表单发布数据,一切正常,但当我提交2部电影具有相同的流派,例如“动作/戏剧”,我在流派表中得到2个单独的条目,如:
id:1名称:动作/戏剧
ID: 2名称:动作/戏剧
对于一个特定的流派类型,反复使用单个id的最佳方法是什么?例如,如果我添加了10部类型为“动作/戏剧”的电影,则“电影”表中的“流派id”外键应仅显示一个与流派表的“动作/戏剧”id对应的特定id。希望这有意义:/
控制器方法:
public function addMovies(Request $request)
{
$genre = new Genre;
$genre->name = $request->input('genre');
$genre->save();
$movie = new Movie;
$movie->title = $request->input('movieName');
$movie->genre = $request->input('genre');
$movie->genre()->associate($genre);
$movie->save();
$actor = new Actor;
$actor->name = $request->input('actorName');
$actor->save();
$actor->movie()->save($movie);
return redirect()->route('movies.search');
}
输出表应如下所示:
注意:我还有一个透视表,它将电影和演员联系起来,以促进多对多的关系,但我没有在这里包含它。
你每次都在明确地保存一个新的流派,这就是为什么你会得到重复的。你想做的是
$genre = Genre::firstOrCreate("name", $request->input('genre'));
然后你会把电影归类为一种类型
我有三张桌子: 每当我尝试添加时,我试图获得一个帖子,它会自动添加一个,其中包含,表以及,同时,一旦创建了,它还应该记录和,但我使用多对多关系和结束了这个错误。如何使用eloquent添加和? 这就是我迄今为止所尝试的。 控制器。php 使用者php UserACcount.php Verification.php 账户php 我尝试使用这个功能,完全可以正常工作,但我很确定这就是它如何与雄辩。
如何使用laravel雄辩的ORM关系在多个表中发出一个插入请求。即 表1:用户 id 姓名 电子邮件 表2:员额 id 表3:图像 id 用户id 邮政id 图像名称 关系 表id引用了其他两个表中的 表与
我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可
我有帖子表和评论表。我想得到所有的帖子与它的评论和以下返回只是帖子有评论: 更新 例如 ID帖 1个职位1 2后2 id post\u id评论 1萨姆勒大学评论 Post::with('comments')只返回有注释的帖子,它只返回第一篇帖子,因为第二篇帖子没有注释,我想获取所有帖子(有注释或没有注释)
我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:
我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca