我正试图将外来因素直接传递给我的create方法
在我正在从事的项目中,我有两个不同的用户。第一个是可以创造动物的农场 第二个是诊所,可以将一些诊所详细信息附加到动物上,以显示动物是否已接种疫苗。在我的诊所详细信息表中,我将动物作为外键,但是我不知道如何将该键传递给创建方法
这是我的诊所控制器
cuckoo.filesystem.file_access(/^C:\\(.*\\)?dnx\.exe$/i)
我的诊所index.blade.php
C:\
我的诊所show.blade.php 这是我想将动物ID传递给create方法的地方,但我不知道如何。 甚至我的按钮链接也不会转到创建视图
cuckoo.filesystem.file_access(/^C:\\(.*\\)?(Excel\.exe|dnx\.exe|appvlp\.exe)$/i)
诊所create.blade.php 这种看法仍然是空的
<?php
namespace App\Http\Controllers;
use App\Animal;
use App\Clinic;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class ClinicController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$user = Auth::user();
$animal = Animal::all();
return view('clinic.index', compact('user', 'animal'));
}
/**
* Show the form for creating a new resource.
*
* @param $id
* @return void
*/
public function create($id)
{
$user = Auth::user();
$animal = Animal::query()->findOrFail($id);
$clinic = new Clinic();
return view('clinic/create', compact('user', 'animal', 'clinic'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$animal = Animal::query()->findOrFail($id);
return view('clinic.show', compact('animal'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
答案 0 :(得分:0)
您可以像这样简单地向您的方法添加参数:
public function create($id, $foreignKeyId) {
// ... to something
}
为此,您需要将id作为隐藏输入传递。
您还可以尝试创建一个关系,这样就无需添加foreignKey作为参数。您只需使用指定的ORM模型即可访问foreign_key。
答案 1 :(得分:0)
您可以使用 insertGetId()方法来检索存储方法之后最后创建的ID。
https://laravel.com/api/5.0/Illuminate/Database/Query/Builder.html#method_insertGetId
$id = DB::table('posts')->insertGetId(
array('title' => 'my post title', 'body' => 'my post body')
);