gpt4 book ai didi

php - 使用表单更新 Laravel 数据库

转载 作者:行者123 更新时间:2023-12-02 06:10:44 25 4
gpt4 key购买 nike

我正在尝试使用表单更新我的 sqlite 数据库。我首先检索表行的内容并将其显示在表单中,然后我可以编辑表单的内容,当我完成后按更新,这应该更新表并重定向到“home”,但我收到此错误:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

我收到此消息的原因是什么?

这是正在执行的代码:

function updateStatus(){
$id = Input::get('id');
$uptitle = Input::get('title');
$upmessage = Input::get('message');


$sql = "UPDATE status SET title= ? Message= ? WHERE Id= ?";
DB::update($sql, array($uptitle, $upmessage, $id));
}

路线:

Route::post('updated',function()
{
updateStatus();

$results = getPosts();

return Redirect::to('home')->withPosts($results);
});



function getPosts()
{
$sql = "select * from status order by Id DESC";
$results = DB::select($sql);
return $results;
}

执行路由“update”的表单:

@section('content')
@forelse ($edits as $edit)
<form method="post" action="updated" >
<div class="form-group">
<input type="hidden" name="id" value="{{{ $edit->Id }}}">
<!-- <label>Name</label>
<input name ="name" class="form-control" value='{{{ $edit->Name }}}'>
-->
<label>Post Title</label>
<input name ="title" class="form-control" value='{{{ $edit->Title }}}'>
</div>
<div class="form-group">
<label>Message</label>
<textarea class="form-control" name="message" rows="3" >{{{ $edit->Message }}}</textarea>
</div>


<button type="update" class="btn btn-default">Update</button>
</form>
@empty
No Posts
@endforelse
@stop

最佳答案

我认为你不能像这样运行 updateStatus 函数..

首先创建一个 Controller StatusController。然后你这样做:

public function index() {
$sql = "select * from status order by Id DESC";
$results = DB::select($sql);
return $results;
}

public function edit($id) {
// Get the status
$edit = Status::find($id);
// Here return your edit page for updating the status
return View::make('status.edit', array('edit' => $edit));
}

public function updateStatus($id) {
// Get the status
$status = Status::find($id);

$uptitle = Input::get('title');
$upmessage = Input::get('message');

$sql = "UPDATE status SET title= ? Message= ? WHERE Id= ?";
DB::update($sql, array($uptitle, $upmessage, $status->id));

return Redirect::to('home');
}

路线

Route::get('statuses', 'StatusController@index');
Route::get('statuses/edit/{id}', 'StatusController@edit');
Route::post('statuses/edit/{id}', 'StatusController@updateStatus');

关于php - 使用表单更新 Laravel 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29667242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com