写入DB不能在Controller中工作,但在视图中工作 - Laravel

时间:2018-04-23 15:57:09

标签: php database laravel

点击保存按钮后,我试图在数据库中写入一些数据。

在我的开发过程中,我在我的视图中使用PHP代码在我的数据库中成功编写,但PHP代码在页面加载时运行,而不是在我的按钮被单击时运行。

我所做的是重定向到我的控制器中调用函数的地址,然后重定向到登录页面。

这是我的控制器代码:

<?php
namespace App\Http\Controllers;

use JavaScript;
use Illuminate\Support\Facades\DB;

class bus_confirmationController extends Controller{
    public function test(){

        $results = DB::select('select bus_direction from bus_line where card_uid = "0xcb009299"', array(1));
        JavaScript::put([
            'selectionData' => $results
        ]);

        return view('bus_confirmation');
    }

    public function postRequest(){

        DB::table('bus_line')->insert(
            array('ID' => '', 'bus_direction' => '77t', 'card_uid' => '0xcb009299')
        );
        return view('home');
    }
}

以下是我的观点代码:

[...]
<div class="panel panel-default" id="save" onclick="savedata()" >
    SAVE
</div>
[...]


<script type="text/javascript">
function savedata() {
        var toReturn = [];
        var data = ["88t", "85t","77t","redLinet"];
        for (i = 0; i < data.length; i++) {
            var image = document.getElementById(data[i]).style.visibility;
            if (image==="visible" || image===""){
                toReturn.push([data[i], "visible"]);
            }
        }
        window.location = 'Bus_confirmationSend';

        //Where I used to do my request to write my data 
        /*DB::table('bus_line')->insert(
            array('ID' => '', 'bus_direction' => '88t', 'card_uid' => '0xcb009299')

        );*/

        console.log(toReturn);
    }
</script>

以下是web.php中的内容

Route::get('/bus_confirmationSend', 'bus_confirmationController@postRequest');

我知道我与数据库的联系正在起作用&#39; test&#39;从控制器工作,我可以从我的数据库中检索数据。我也知道我第一次重定向到&#39; bus_directionController&#39;作为第二次重定向到家庭&#39;作品。

我错过了什么吗?我真的不明白这里可能出现的问题。

1 个答案:

答案 0 :(得分:1)

可能是因为您有window.location = 'Bus_confirmationSend';,但您的路线以小写字母b开头