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

How to store data to a table through a form in laravel 6?

我是 laravel 的新手,一般来说是编码。我想知道如何使用表单将数据存储到空 table。

以及如何显示存储在数据中的 table 的单列。 我已经尝试了很多东西,但我只是不明白路由是如何工作的以及如何与控制器连接。

这是我的看法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

然后填写表格并存入数据库

这是我对 table

的迁移

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");

  }

}

这是我的团队模型table

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']);

您必须创建一个新函数来存储数据, 因为在 store 函数中,您 return 在 table.

中插入数据之前查看
 public function store(Request $request)
  {
    return view('createteams');
  }

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

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