如何通过laravel 6中的表单将数据存储到表中?

问题描述 投票:0回答:1

我对laravel和编码通常是陌生的。我想知道如何使用表格将数据存储到空表中。

以及是否有可能显示存储在数据中的表的单个列。我已经尝试了多种方法,但我只是不了解路由如何工作以及如何与控制器连接。

这是我的观点home.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-6">
            <div class="card">
                <div class="card-header"style="text-align:center;font-size:20px;">Teams</div>

                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif

                  <div class=col-md-12>
                    <a class="pl-5" style="font-size:25px;"href="createteams">Create a Team</a>
                      <a class="pl-5"style="font-size:25px;"href="">View Teams</a>
                    </div>

                </div>
            </div>
        </div>
    </div>
</div>
@endsection

我希望用户单击创建团队并将其重定向到我的其他表单名为createteams.blade.php,它是这样的:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header"><h2 style="text-align:center;">Create Your Own Team</h2></div>

                <div class="card-body">
                    <form method="POST" action="home">
                        @csrf

                        <div class="form-group row">
                            <label for="team_name" class="col-md-4 col-form-label text-md-right">Team Name</label>

                            <div class="col-md-6">
                                <input id="team_name" type="text" class="form-control @error('team_name') is-invalid @enderror" name="team_name" value="{{ old('team_name') }}" required autocomplete="team_name" autofocus>

                                @error('team_name')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="team_desc" class="col-md-4 col-form-label text-md-right">{{ __('Team Description') }}</label>

                            <div class="col-md-6">
                                <input id="team_desc" type="text"  name="team_desc" class="form-control @error('team_desc') is-invalid @enderror"value="{{ old('team_desc') }}">

                                @error('team_desc')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>
                        <div class="form-group row">
                            <label for="org_select" class="col-md-4 col-form-label text-md-right">{{ __('Select up to 4 Orgs') }}<br>Hold Ctrl For multiple selection</label>

                            <div class="col-md-6">
                                <select id="org_select" multiple class="form-control" name="org_select" value="{{ old('org_select') }}" autocomplete="org_select">
                                        <option value= "frederick">Frederick</option>
                                        <option value="I dont know">Cyprus Uni</option>
                                      </select>
                                @error('org_select')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>
                        <div class="form-group row mb-0">
                            <div class="col-md-6 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    Confirm
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

然后填写表格并将其存储在数据库中

这是我的表格迁移


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

class CreateTeamsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('teams', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('team_name');
            $table->text('desc')->nullable();

            $table->timestamps();

        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('teams');
    }
}

这是我的控制器

<?php

namespace App\Http\Controllers;
use App\Team;
use Illuminate\Http\Request;

class CreateTeamController extends Controller
{

  public function store(Request $request)
  {
    return view('createteams');
    $team=Team::create($request->all());
    return redirect()->route("home");

  }

}

这是我的球队表模型

namespace App;

use Illuminate\Database\Eloquent\Model;

class Team extends Model
{
  protected $fillable = [
      'team_name', 'desc',
  ];

  protected $table='teams';

  public function assembled(){
    return $this->hasMany(User::class);
  }
}

这是我的路线

Route::get('/createteams',['as'=>'/createteams','uses'=>'CreateTeamController@store']);
php database laravel store
1个回答
0
投票

您必须创建一个新功能来存储数据,因为在store函数中,您在将数据插入表之前先返回视图。

 public function store(Request $request)
  {
    return view('createteams');
  }

public function storeData(Request $request){ //you can name function
    $team=Team::create($request); // if fillable fields in model have same name as data coming in request 
    return redirect()->route("home");
}

另外,您将需要定义两条路线,一条显示表单,一条存储数据您已经定义了要显示表单的路由,现在可以使用post方法定义另一个路由来存储数据并重定向。

© www.soinside.com 2019 - 2024. All rights reserved.