我想知道我是否做得对,我的代码是否符合语义和安全。
我需要从数据库中加载一个页面,但为此我需要交叉一些数据并且所有数据都必须兼容,验证如下:
网址:mysite.com/company/page/code
- 1 - 检查第一个参数以查看公司是否存在。
- 2 - 检查第二个参数以确定公司 X 是否有该页面
- 3 - 检查第三个参数以确定页面 Y 是否有代码以及该代码是否与您键入的内容匹配。
- 4 - 如果用户到达这里并且所有数据都正确,请加载页面和相应的数据。
在这里,他检查用户 X 是否有页面 Y,我怀疑我是否可以这样做或者是否有其他方法。
$page = Page::where('name', $name)->where('page_name', $page_name)->first();
if ($page === null) {
return view('company.pages.erros.404', compact('name', page));
}
这里和另一个类似,他检查用户 X 是否有页面 Y 以及页面 Y 的代码是否正确,和其他人一样,我怀疑在代码中放置几个 WHERE 子句是否正确
$pagecode = Page::where('name', $name)->where('page_name', $pagen_name)->where('code', $pcode)->first();
if ($pagecode === null) {
return view('company.pages.erros.invalid_code', compact('company, name', page, pcode));
}
正如我认为你会想要一般上下文中的代码,这里是完整的功能代码
public function loadpage($name, $page_name, $pcode)
{
$company = Company::where('name', $name)->first();
if ($company === null) {
return view('company.not_register', compact('name'));
}
$page = Page::where('name', $name)->where('page_name', $page_name)->first();
if ($page === null) {
return view('company.pages.erros.404', compact('name', page));
}
$pagecode = Page::where('name', $name)->where('page_name', $page_name)->where('code', $pcode)->first();
if ($pagecode === null) {
return view('company.pages.erros.invalid_code', compact('company, name', page, pcode));
}
$personality = DB::table('personalities')->where('name', $name)->first();
return view('company.pages.index', compact('company', 'name', 'personality', 'page', pcode));
}