如何在 LARAVEL 5.2 中将数据存储到数据库中

Posted

技术标签:

【中文标题】如何在 LARAVEL 5.2 中将数据存储到数据库中【英文标题】:How to store data to database in LARAVEL 5.2 【发布时间】:2017-10-25 13:17:57 【问题描述】:

我是 Laravel 的初学者,当我想将数据存储到数据库时遇到问题。 当视图上的名称与数据库数据上的字段名称不同时未保存在数据库中,但视图上的输入名称与数据库数据上的字段名称相同时正确存储

示例 这是视图

<div class="form-group">
    <div class="row">
        <div class="col-md-3">
            <label>Job</label>
            <input type="text" class="form-control" name="job" placeholder="Job">
        </div>
    </div>
</div>
<div class="form-group">
    <div class="row">
        <div class="col-md-3">
            <label>Machine</label>
             Form::select('machine', $mesin_laminating->pluck('active', 'kode')->all(), null, ['class' => 'form-control select2'])                                      
        </div>
    </div>

</div> 

这是我的控制器

 public function store(Request $request)

    $this->validate($request, [
        'job' => 'required',
        'machine' => 'required'
    ]);

    $input = $request->all();
    SpkAdmin::create($input);


这是我的模特

protected $table = 'tb_job';

protected $fillable = ['user_job', 'machine'];

这是我的数据库

user_job | machine
------   | ------
Cell     | Cell

如何将控制器上的 scyn 作业存储在 user_job 上? 对不起我的英语

【问题讨论】:

您希望表单字段名称不同于 DB 中的名称? @GaneshGhalame 我希望输入名称与 DB 中的字段名称不同 如果答案有效,请批准并投票 【参考方案1】:

替换store如下:

public function store(Request $request)

    $this->validate($request, [
        'job' => 'required',
        'machine' => 'required'
    ]);

    $spkAdmin = new SpkAdmin();
    //On left field name in DB and on right field name in Form/view
    $spkAdmin->user_job = $request->input('job');
    $spkAdmin->machine = $request->input('machine');
    $spkAdmin->save();

【讨论】:

我这样做时出错,错误 - $spkAdmin = SpkAdmin::new SpkAdmin(); 在对象创建中删除了 SpkAdmin:: 我的错误,现在更新代码检查 未定义变量:spkAmin ||输入模型(DB)的查询在哪里? 现在检查错字【参考方案2】:

还有另一种在数据库中添加数据的方法

$data = Input::all();    
$check = DB::table('tablename')->insertGetId(array(
                                                'phone_no'      => $data['number'],
                                                'firstname'     => $data['first_name'],
                                                'lastname'      => $data['last_name'],
                                                'birth_month'   => $data['birth_month'],
                                                'birth_year'    => $data['birth_year'],
                                                'zipcode'       => $data['zip_code'],
                                                'device_token'  => $data['device_token'],
                                                'created_at' => Carbon::now()
                                                        ));

希望这可以解决您的问题

【讨论】:

您的查询不需要模型? 不,这不是因为它是插入数据的替代方法【参考方案3】:
use App\SpkAdmin;

public function store(Request $request)

    $this->validate($request->all(), [
        'job' => 'required',
        'machine' => 'required'
    ]);

$spkAdmin = SpkAdmin::create($request->all());

    Or 

$input = [];
$input = $request->all();
$input['user_job'] = $request->get('job');
$input['machine'] = $request->get('machine');
SpkAdmin::create($input);

【讨论】:

虽然此代码可能会回答问题,但提供有关其解决问题的方式和/或原因的附加上下文将提高​​答案的长期价值。Read this。

以上是关于如何在 LARAVEL 5.2 中将数据存储到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中将“历史数据”存储到数据库中的正确方法是啥?

使用Laravel 5.2计算Y-m-d中存储在数据库中的日期的年龄

在 Laravel 5.2 中将页面 URL 参数传递给控制器

如何使用 Laravel 5.2 + Guzzle 6 存储 JWT 并授予用户访问权限

如何通过 post 方法将数据从 ajax 传递到 laravel 5.2 控制器

在 Laravel 5.2 中通过 RESTful 资源控制器使用 jQuery Ajax Post 方法将数据存储在数据库中