Php Laravel正在尝试添加到数据库
我是拉威尔框架的新手。我正在尝试从表单保存到数据库 例如:Php Laravel正在尝试添加到数据库,php,mysql,laravel,Php,Mysql,Laravel,我是拉威尔框架的新手。我正在尝试从表单保存到数据库 例如: 输入蒸汽标识: 输入访问: 控制器: public function admins_add() { $serveradmins = DB::table('server_admins')->first(); $this->title('Add admins'); $this->pageView('servers::admins_add', ['serveradmins' => $serv
- 输入蒸汽标识:
- 输入访问:
public function admins_add()
{
$serveradmins = DB::table('server_admins')->first();
$this->title('Add admins');
$this->pageView('servers::admins_add', ['serveradmins' => $serveradmins]);
DB::table('server_admins')->insert(
array(
$serveradmins->auth = Input::get('steam-id'),
$serveradmins->access = Input::get('access'),
$serveradmins->password = 'nopass',
$serveradmins->flags = 'ce',
$serveradmins->added_by = Input::get('added_by')
)
);
$serveradmins->save();
return Redirect::back();
}
观点:
<div class="page page-servers page-servers-admin-form">
<form method="POST" action="/admin/servers/admins/create" accept-charset="UTF-8" class="form-horizontal">
<div class="form-group ">
<label for="title" class="col-sm-3 control-label">STEAM ID</label>
<div class="col-sm-9">
<input name="steam-id" type="text" id="steam-id">
</div>
</div>
<div class="form-group ">
<label for="access" class="col-sm-3 control-label">Teisės</label>
<div class="col-sm-9">
<input name="access" type="hidden" value="" id="access">
<select id="access" name="access"><option value="" selected="selected">-</option>
<option value="abcdefghijklmnopqrstuv">Owner</option>
<option value="bcdfijmnopqruv">Admin</option>
<option value="3" disabled>PREMIUM</option>
</select>
</div>
</div>
<div class="form-actions">
<button type="submit" name="_form_submit" class="btn btn-default" value="1">
<i class="fas fa-save "></i>
SAVE!
</button>
<button type="button" onclick="document.location.href='/admin/servers/admins'" class="btn btn-default">
<i class="fas fa-times "></i> Cancel
</button>
</div>
</form>
</div>
</section>
如果我的代码很糟糕,请不要对我的代码生气,我对laravel是新手,非常喜欢它!谢谢大家的帮助:)您的插入已关闭。它应该是key=>value对(其中key是数据库中的列名)。试一试 有关更多信息,请参阅。你也可以走雄辩的路线,做:
$serverAdmin = new ServerAdmin();
$serverAdmin->auth = Input::get('steam-id'),
$serverAdmin->access = Input::get('access'),
$serverAdmin->password = 'nopass',
$serverAdmin->flags = 'ce',
$serverAdmin->added_by = Input::get('added_by')
$serverAdmin->save();
您的插入已关闭。它应该是key=>value对(其中key是数据库中的列名)。试一试 有关更多信息,请参阅。你也可以走雄辩的路线,做:
$serverAdmin = new ServerAdmin();
$serverAdmin->auth = Input::get('steam-id'),
$serverAdmin->access = Input::get('access'),
$serverAdmin->password = 'nopass',
$serverAdmin->flags = 'ce',
$serverAdmin->added_by = Input::get('added_by')
$serverAdmin->save();
第一:为什么要在
get
路径中执行admins\u add()
?创建一个名为index()
的函数以便于理解,并告诉该函数返回如下视图
public function index() {
$serveradmins = DB::table('server_admins')->first();
return view('viewname')->with('serveradmins', $serveradmins);
}
然后,您的管理员\u add()
应该如下所示:
public function admins_add(Request $request)
{
ServerAdmin::create([
'auth' => $request->steam-id,
'access' => $request->access,
'password' => 'nopass',
'flags' => 'ce',
'added_by' => $request->added_by
]);
return Redirect::back();
}
在执行之前,通过CLI生成ServerAdmin
模型(php-artisan-make:Model-ServerAdmin
),并在此模型内将可填充项更改为
protected $fillable = [
'auth',
'access',
'password',
'flags',
'added_by'
];
设定
protected $table = 'server_admins';
编辑:正如N Mahurin在评论中提到的那样——用这个解决方案来练习拉拉维尔。大规模任务有很大的安全风险。请在此阅读:
首先:为什么要在
get
路径中执行admins\u add()
?创建一个名为index()
的函数以便于理解,并告诉该函数返回如下视图
public function index() {
$serveradmins = DB::table('server_admins')->first();
return view('viewname')->with('serveradmins', $serveradmins);
}
然后,您的管理员\u add()
应该如下所示:
public function admins_add(Request $request)
{
ServerAdmin::create([
'auth' => $request->steam-id,
'access' => $request->access,
'password' => 'nopass',
'flags' => 'ce',
'added_by' => $request->added_by
]);
return Redirect::back();
}
在执行之前,通过CLI生成ServerAdmin
模型(php-artisan-make:Model-ServerAdmin
),并在此模型内将可填充项更改为
protected $fillable = [
'auth',
'access',
'password',
'flags',
'added_by'
];
设定
protected $table = 'server_admins';
编辑:正如N Mahurin在评论中提到的那样——用这个解决方案来练习拉拉维尔。大规模任务有很大的安全风险。请在此阅读:
您能否快速解释一下到底哪里出了问题,您认为哪一步不正确?如果您有任何错误,您是否也可以说明这些错误是什么?输入并选择使用相同的id和名称“access”?并将get/post路由到相同的方法?@ken9999有一个很好的观点。发送给admins_add()的请求将使用html元素的名称作为键。确保所有html元素的名称和ID都是唯一的。可能有人可以制作一个非常简单的运行示例,在您看到保存到db的数据后,最好不使用所有css,然后返回修改视图并添加更多inputsempty表单,只使用一个输入(不使用所有css)>路由>控制器方法(Request$Request)>保存$Request->input()对于DBA,您能否快速解释一下到底什么是错误的,以及您认为哪一步是错误的?如果您有任何错误,您是否也可以说明这些错误是什么?输入并选择使用相同的id和名称“access”?并将get/post路由到相同的方法?@ken9999有一个很好的观点。发送给admins_add()的请求将使用html元素的名称作为键。确保所有html元素的名称和ID都是唯一的。可能有人可以制作一个非常简单的运行示例,在您看到保存到db的数据后,最好不使用所有css,然后返回修改视图并添加更多inputsempty表单,只使用一个输入(不使用所有css)>路由>控制器方法(Request$Request)>保存$Request->input()您可能希望在DBA中添加批量分配,虽然方便,但在您提到的Sure and good中列出了安全漏洞。但我认为,对于一个开始学习拉威尔的人来说,理解雄辩的正确性很重要,这是我最容易的开始。但是@op记住他的建议!您可能希望添加批量分配,虽然方便,但在您提到的Sure and good中列出了安全漏洞。但我认为,对于一个开始学习拉威尔的人来说,理解雄辩的正确性很重要,这是我最容易的开始。但是@op记住他的建议!谢谢你的回答。现在我遇到了一个非常奇怪的错误:hash_equals():预期user_字符串为字符串,null表示答案。现在我遇到了一个非常奇怪的错误:hash_equals():预期user_字符串为字符串,给定null