【发布时间】:2022-11-30 18:14:04
【问题描述】:
我的项目遇到了问题,因为您知道一个作者可以有多篇论文,而一篇论文可以有多个作者。因为是多对多的关系,所以我设计了我的数据库
我对如何输入标题然后输入作者并将它们关联起来以进行显示和引用感到困惑 你们有什么想法吗?我正在使用 Laravel 9 来制作这个项目
这是我做的源代码 创建论文标题然后路由回索引
@extends('layouts.layout')
@section('content')
<form action="{{ route('papers.store') }}" method="POST">
@csrf
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Title:</strong>
<input type="text" name="title" class="form-control" placeholder="Title">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
@endsection
论文控制器
public function store(Request $request)
{
$paper = new Papers();
$paper->title = $request->title;
$paper->save();
return redirect()->route('papers.index');
}
索引刀片
@extends('layouts.layout')
@section('content')
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Debugging</h2>
</div>
<div class="pull-right">
<a class="btn btn-success" href="{{ route('papers.create') }}"> Create New Paper</a>
</div>
</div>
</div>
@foreach($paper as $papers)
{{$papers->title}}
<div class="pull-right">
<a class="btn btn-success" href="{{ route('AddAuthor',$papers->PaperID) }}"> Add Author(s)</a>
</div>
@endforeach
@endsection
作者刀片
@extends('layouts.layout')
@section('content')
<form action="{{ route('authors.store') }}" method="POST">
@csrf
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>First Name:</strong>
<input type="text" name="Fname" class="form-control" placeholder="First Name">
</div>
<div class="form-group">
<strong>Last Name:</strong>
<input type="text" name="Lname" class="form-control" placeholder="Last Name">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
@endsection
作者控制器
public function store(Request $request)
{
$relate = DB::table('papers')
->where('PaperID', '=', $request->paper_ID)
->value('PaperID');
$author = new Authors();
$relations = new Relate();
$author->Fname = $request->Fname;
$author->Lname = $request->Lname;
$relations->paper_ID = $relate;
$author->save();
$relations->save();
return redirect()->back();
}
【问题讨论】:
-
请与我们分享到目前为止的尝试。如果您不重命名
'id'列,您也可以更轻松地进行关系分配。我强烈建议您重构表papers并将PaperID重命名为id -
当您在项目中使用 Laravel 9 时,请查看 Many to Many relationship 的介绍,如果您还没有尝试过。如果您尝试了某事但在某处失败了,请分享代码并解释什么不起作用。
-
所以我尝试的是用户首先输入标题然后被重定向回索引页面在那里他们可以添加作者并被路由到作者创建页面这就是我遇到的问题我将编辑问题以便人们可以看到代码
-
也请贴出两个模型的相关关系定义