Как сохранить данные в таблицу через форму в laravel 6? - PullRequest
1 голос
/ 07 марта 2020

Я новичок в 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']);

1 Ответ

1 голос
/ 07 марта 2020

Вам необходимо создать новую функцию для хранения данных, потому что в функции store вы возвращаете представление перед вставкой данных в таблицу.

 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 методом для хранения данных и перенаправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...