出于某种原因,我无法保存到数据库中。没有错误,只是没有更新。我知道命令正常工作,因为之后返回 $user 会给我修改的各个字段。但是在某个地方,信息没有被输入数据库。
Blade 可以在这里找到:http://pastebin.com/8bAEsjtj 申请表可在此处找到:http://pastebin.com/ZCD1Xvjn
这是 Controller :
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\UserFormRequest;
use App\UserEdit;
use DB;
use App\Http\Requests;
class EditUserController extends Controller
{
public function index()
{
$array = UserEdit::all()->toArray();
return view('UserEntry', compact('array'));
}
public function create()
{
//
}
public function store()
{
//
}
public function show($ID)
{
try {
$array = UserEdit::findorFail($ID)->toArray();
return view('UserEdit')->with('array', $array);
} catch(\Exception $e) {
return \Redirect::route('users.index')
->withMessage('This user does not exist');
}
}
public function edit(UserEdit $user)
{
return view('EditUser', compact('user'));
}
public function update(UserFormRequest $request, UserEdit $user)
{
//$input->$request->all();
//$user->fill(Input::all());
$user->fill([
'name' => $request->get('name'),
'email' => $request->get('email'),
'First_Name' => $request->get('First_Name'),
'Last_Name' => $request->get('Last_Name')
]);
//$user->name = Input::get('name');
//$user->email = Input::get('email');
//$user->First_Name = Input::get('First_Name');
//$user->Last_Name = Input::get('Last_Name');
$user->save();
//$user->save();
// return redirect()->route('users.index')->with('message', 'Details Updated!');
return $user;
}
public function destroy($id)
{
//
}
}
很确定这一切都是光明正大的,那为什么行不通呢?我在某处遗漏了一些细节吗?这是型号:http://pastebin.com/vJBzfUVu
最佳答案
好的。找到了答案,mysql 和 php 处理数据库表中“id”的方式有所不同。
在这个例子中,因为我从其他开发者那里继承了数据库,所以 id 列被大写了。
这可能使 php laravel 生成抛出一个错误,因为它正在寻找“id”但没有找到任何东西。
我没有注意到这一点,因为它实际上并没有打印出那个错误,而我的其他代码正在计算大写。
将 ID 更改为 id 并修复代码中的引用似乎已经解决了问题。
关于php - Laravel 没有保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40145527/