从服务器在Laravel 4中创建和/或更新数据库中的表

时间:2015-01-02 10:50:05

标签: php mysql laravel schema

我是移动应用程序(Android / iOS)开发人员,在没有我们的php开发人员的情况下,我想在我们的数据库和POST中添加另一个表并获取一些数据并存储在新表中。

Laravel 4安装在我们的服务器中,并且通过一些基本的cPanel,phpMyAdmin和php信息,我试图在现有数据库中创建一个新表。

首先我累了并使用phpMyAdmin创建了一个表,然后我添加了像这样的模型文件

<?php

class Record extends Eloquent {

protected $table = 'requestRecords';
protected $guarded = array();
public $timestamps = true;

}

但是,当我尝试使用此语法在我的route.php文件(我使用phpMyAdmin手动创建)中向requestRecords添加数据时,没有任何反应:

Route::post('api/v1/FLRequest', function()
 {

//check right inputs sent to us.
if( !Request::has('userId')     or
    !Request::has('userName')   or
    !Request::has('timeStamp')  or
    !Request::has('requestFor') or
    !Request::has('nKey'))
    return Response::json(array(
        'status' => "error",
        'message' => "Missing Parameter"),
        500
    );


$inputs = Request::all();
if($inputs['nKey']!= "nKey_Goes_Here")
    return Response::json(array(
        'status' => "error",
        'message' => "Wrong Request"),
        500
    );


    $addRecord = Record::create(array(
                                'userName' => $inputs['userName']));

if($addRecord!==FALSE)
{
    return Response::json(array(
        'status' => "success",
        'message' => "Record Updated"),
        200
    );
}
else
{
    return Response::json(array(
        'status' => "error",
        'message' => "Failed Updating Record"),
        401
    );
}

实际上我既没有得到200也没有得到401,但我得到了HTTP 500 Internal Server Error

然后我尝试使用schema添加表,所以我在database / migrations文件夹中创建了一个php文件,名为:2015_01_02_104814_create_requestRecords_table.php并在那里添加这些代码:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateRequestRecordsTable extends Migration {

public function up()
{
    Schema::create('requestRecords', function($table) {
        $table->increments('id');
        $table->string('userId',255);
        $table->string('userName', 255);
        $table->string('timeStamp', 255);
        $table->string('payLoad',255);
        $table->string('requestFor',255);
        $table->string('bToken',255);
        $table->string('bSituation',255);

    });
}

public function down()
{
    Schema::drop('requestRecords');
}
}

再次尝试添加数据后,我既没有得到200也没有得到401,但我得到了HTTP 500 Internal Server Error

有关详细信息,请参阅我的控制器和型号:

文件/app/controllers/RequestRecordsController.php中的控制器:

<?php 
            class RequestRecordsController extends BaseController {

              /**
               * Display a listing of the resource.
               *
               * @return Response
               */
              public function index()
              {

              }

              /**
               * Show the form for creating a new resource.
               *
               * @return Response
               */
              public function create()
              {

              }

              /**
               * Store a newly created resource in storage.
               *
               * @return Response
               */
              public function store()
              {

              }

              /**
               * Display the specified resource.
               *
               * @param  int  $id
               * @return Response
               */
              public function show($id)
              {

              }

              /**
               * Show the form for editing the specified resource.
               *
               * @param  int  $id
               * @return Response
               */
              public function edit($id)
              {

              }

              /**
               * Update the specified resource in storage.
               *
               * @param  int  $id
               * @return Response
               */
              public function update($id)
              {

              }

              /**
               * Remove the specified resource from storage.
               *
               * @param  int  $id
               * @return Response
               */
              public function destroy($id)
              {

              }

            }

            ?>

/app/models/Record.php中的模型:

<?php
class Record extends Eloquent {
protected $table = 'requestRecords';
protected $guarded = array();
public $timestamps = true;

}

我做错了什么?

谢谢:)

1 个答案:

答案 0 :(得分:0)

您正在添加大量验证,并且总是在应用程序上自行抛出500错误。

最佳做法是让你删除所有这些,尝试让事情先行,然后再做。当您看到代码有效时,则添加验证以确保所需的每个字段都在表单上。