dongshadu2546 2018-07-12 07:14
浏览 37

Laravel雄辩不能向数据库提交数据

I'm using eloquent to store data in laravel, i have form on '/' page that submit data before login, and i want that data to be shown on the table that i've made on admin page after login. The thing is, after i click submit button, nothing happened, just go back to '/' page and the data form the form doesn't even stored to database. Any advice, expert?

Here are my piece of codes:

web.php

Route::get('/', 'FrontController@home')->name('home');

Route::get('/login', 'FrontController@login')->name('login');

Route::post('/form', 'FrontController@create')->name('buat');

Auth::routes();

Route::get('/home', 'AdminController@index')->name('admin');

Route::get('/masuk', 'AdminController@masuk')->name('masuk');

Route::get('/keluar', 'AdminController@keluar')->name('keluar');

Route::get('/logout', '\App\Http\Controllers\Auth\LoginController@logout')->name('logout');

Parking.php (for eloquent)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Parking extends Model
{

    protected $fillable = ['nopol'];
}

FrontController (guest page)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use DB;

use App\Parking;

class FrontController extends Controller
{

     /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    public function home () {
        return view ('home');
    }

    public function login () {
        return view ('login');
    }

    public function create(Request $request)
    {


        $request->validate([
            'jenis' => 'in:Motor,Mobil',
            'kategori' => 'in:Umum,Karyawan',
            'nopol' => 'required|string',

        ]);

        $park = Parking::create([
            'jenis' => $request->input('jenis'),
            'kategori' => $request->input('kategori'),
            'nopol' => $request->input('nopol'),
        ]);


        return back()-> with('success', 'Silakan masuk! ID parkir anda '. $park->id .' dengan nomor polisi '. $park->nopol);


    }

}

AdminController (admin page)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use DB;

use App\Parking;

class AdminController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('admin');
    }

    public function masuk(Request $request)
    {
        $park = Parking::all();
        //$hobbies = Hobby::with('user')->get();
        return view('masuk', ['park' => $park]);
    }

     public function keluar()
    {
        return view('keluar');
    }


}

home.blade.php (guest page)

<!-- start: Form Elements -->
<div class="row-fluid sortable" style="position: absolute; bottom: 30%; left: 30%">
        <div class="box span4">
            <div class="box-header" data-original-title>
                <h2><i class="halflings-icon white edit"></i><span class="break"></span>Input Kendaraan Masuk</h2>
                <div class="box-icon">
                    <a href="#" class="btn-setting"><i class="halflings-icon white wrench"></i></a>
                    <a href="#" class="btn-minimize"><i class="halflings-icon white chevron-up"></i></a>
                    <a href="#" class="btn-close"><i class="halflings-icon white remove"></i></a>
                </div>
            </div>
            <div class="box-content">
                <form class="form-vertical" id="form-masuk" method="POST" action="{{ route('buat') }}">
                    {{ csrf_field() }}
                    <fieldset>

                      <div class="control-group">
                        <label class="control-label" for="typeahead">Jenis Kendaraan</label>
                        <div class="controls">
                          <select id="opt-jenis" name="jenis">
                            <option value="Motor">Motor</option>
                            <option value="Mobil">Mobil</option>
                          </select>
                        </div>
                      </div>

                        <div class="control-group">
                        <label class="control-label" for="typeahead">Kategori Kendaraan</label>
                        <div class="controls">
                          <select id="opt-kategori" name="kategori">
                            <option value="Umum">Umum</option>
                            <option value="Karyawan">Karyawan</option>
                          </select>
                        </div>
                      </div>

                      <div class="control-group">
                            <label class="control-label" for="typeahead">Nomor Polisi</label>
                            <div class="controls">
                              <input class="span6 typeahead" id="nopol" type="text">
                            </div>
                        </div>
                      <div class="form-actions">
                     <button type="submit" form="form-masuk" class="btn btn-primary">Masuk</button>
                        <button type="reset" class="btn" >Batal</button>
                      </div>
                    </fieldset>
                </form>

                </div>
        </div><!--/span-->

    </div><!--/row-->

    </div><!--/.fluid-container-->

masuk.blade.php (admin page that shows table)

<div class="row-fluid sortable">        
            <div class="box span12">
                <div class="box-header" data-original-title>
                    <h2><i class="halflings-icon white user"></i><span class="break"></span>Mobil</h2>
                    <div class="box-icon">
                        <a href="#" class="btn-setting"><i class="halflings-icon white wrench"></i></a>
                        <a href="#" class="btn-minimize"><i class="halflings-icon white chevron-up"></i></a>
                        <a href="#" class="btn-close"><i class="halflings-icon white remove"></i></a>
                    </div>
                </div>
                <div class="box-content">
                    <table class="table table-striped table-bordered bootstrap-datatable datatable">
                      <thead>
                          <tr>
                              <th>ID</th>
                              <th>Nomor Polisi</th>
                              <th>Waktu Masuk</th>
                              <th>Jenis Kendaraan</th>
                              <th>Kategori Kendaraan</th>
                              <th>Status</th>
                          </tr>
                      </thead>   
                      <tbody>
                        @foreach ($park as $p)
                        <tr>
                            <td>{{ $p->id }}</td>
                            <td>{{ $p->nopol }}</td>
                            <td class="center">{{ $p->created_at }}</td>
                            <td class="center">{{ $p->jenis }}</td>
                            <td class="center">{{ $p->kategori }}</td>
                            <td class="center">
                                <a class="label label-info" href="#">Masuk</a>
                            </td>
                        </tr>
                        @endforeach

                    </tbody>
                  </table>            
                </div>
            </div><!--/span-->

        </div><!--/row-->
  • 写回答

1条回答 默认 最新

  • dongna2498 2018-07-12 07:55
    关注

    You are only allowing nopol to be mass assignable:

    // in your Parking model
    protected $fillable = ['nopol'];
    
    // this won't work
    $park = Parking::create([
        'jenis' => $request->input('jenis'),
        'kategori' => $request->input('kategori'),
        'nopol' => $request->input('nopol'),
    ]);
    
    // change your parking model fillable to this
    protected $fillable = ['jenis', 'kategori', 'nopol'];
    

    Alternatively, set the $guarded attribute on the Parking model:

    // allow all fields except id
    protected $guarded = ['id'];
    

    Or allow everything:

    protected $fillable = ['*'];
    

    Finally, use the $request methods to your advantage:

    $park = Parking::create($request->only(['jenis',kategori','nopol']));
    

    Mass Assignment

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值