Создать не сохраняя в базу данных laravel - PullRequest
0 голосов
/ 07 октября 2019

Для школьного задания у нас должен быть сайт, который позволяет создавать обновления, редактировать, удалять игрока и добавлять страну. У меня проблемы с созданием, так как оно не сохраняется в базе данных и не возвращает ошибку. У меня такое чувство, что это из-за моего внешнего ключа, и я искал во всем stackoverflow и laravelforums, как это сделать или почему он не сохраняется в моей базе данных.
(Как примечание, все мои входные данныетекст, пока я не получу его или не получу сообщение об ошибке, с которым я могу работать)
Модель игрока

protected $primaryKey = 'Id';
    protected $fillable =['name','age','role','batting','bowling','image','odiRuns','countries_id'];
    public function country()
    {
        return $this->belongsTo('App\Country','countries_id');
    }

Store Fuction

public function store(Request $request)
    {
        //

        $player = new Player;
        $player->name = $request->name;
        $player->age = $request->age;
        $player->role = $request->role;
        $player->batting = $request->batting;
        $player->bowling = $request->bowling;
        $player->image = $request->image;
        $player->odiRuns = $request->odiRuns;
        $player->countries_id = $request->countries_id;
        $player->save();


        return redirect('index');
    }

Форма

<form action="{{ route('player.store') }}" method=“post”>
@csrf
<div class="form-group">
<label for="name">Name </label>
<input type="text" class="form-control" name="name" id="name" placeholder="First and Last" >
</div>

<div class="form-group">
        <label for="age">Age </label>
        <input type="text" class="form-control" name="age" id="age" placeholder="Age" >
        </div>

        <div class="form-group">
         <label for="role">Role </label>
         <input type="text" class="form-control" name="role" id="role" placeholder="Role" >
          </div>
          <div class="form-group">
                <label for="batting">Batting </label>
              <input type="text" class="form-control" name="batting" id="batting" placeholder="Batting">
          </div>
                 <div class="form-group">
                     <label for="Bowling">Bowling</label>
                       <input type="text" class="form-control" name="bowling" id="bowling" placeholder="Bowling">
                 </div>

               <div class="form-group">
                <label for="odiRuns"> OdiRuns </label>
                 <input type="number" class="form-control" name="odiRuns" id="odiRuns" value="odiRuns" placeholder="OdiRuns" required>
            </div>
                         <div class="form-group">
                             <label for="image">Add Image</label>
                             <input type="file" name="image" class="form-control-file" id="InputFile" value="image">
                         </div>
                         <div class="form-group">
                     <label for="Country">Country</label>
                        <input type="text" class="form-control" name="countries_id" id="countries" placeholder="country">
                 </div>
<button type=“submit” class=“btn btn-primary”>Create</button>
</form>

База данных игроков

public function up()
    {
        Schema::create('players', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->integer('age');
            $table->string('role');
            $table->string('batting');
            $table->string('bowling');
            $table->string('image');
            $table->string('odiRuns');
            $table->integer('countries_id')->unsigned();
            $table->foreign('countries_id')->references('id')->on('countries');
            $table->timestamps();
         });
    }

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Ваша форма публикует запрос GET вместо запроса POST

Это немного сложно заметить, но method=“post” должно быть method="post"

двойными кавычками вместо MSслово странный символ

Укажите, что ваша форма может публиковать такие файлы, как изображения, например

<form action="{{ route('player.store') }}" method="post" enctype="multipart/form-data">

В противном случае оно не будет публиковать изображение и не будет обнуляться при миграции

0 голосов
/ 08 октября 2019

изменить:

$player = new Player();

и почему вы не используете 'select' для country_id, например:

<select name="countries_id">
<option value=""></option>
</select>
method="post"
...