Общая ошибка: 1364 Поле 'StudentID' не имеет значения по умолчанию - PullRequest
0 голосов
/ 19 октября 2019

я пытаюсь создать простую формулу, которая вставляет данные в 2 разные таблицы, имеющие отношение hasMany, но я продолжаю получать эту ошибку: 1364 Поле 'PlayerID' не имеет значения по умолчанию (SQL: вставить в phones (name, updated_at, created_at) значения (qws, 2019-10-19 22:45:40, 2019-10-19 22:45:40))

здесь модель игрока

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Player extends Model
{
    public function phones()
    {
        return $this->hasMany('App\Phone', 'foreign_key', 'local_key');


    }

}

модель телефона:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class phone extends Model
{
    public function Player()
    {
        return $this->belongsTo('App\Player');


    }
}

этот контроллер

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Player;
use App\phone;

class PlayersControlller extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('players.create');    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $people = new Player();
        $phone = new phone();

        $people->name = $request->input('name');
        $people->lastname = $request->input('lastname');
        $phone->name =$request->input('pname');

        $phone->save();
        $people->save();    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

и это форма

 <form action="{{url('player')}}" method="Post" >

            {{ csrf_field() }}
    <label> name</label>
    <input type="text" name="name">
    <label>  last name</label>
    <input type="text" name="lastname">
    <label> phone name</label>
    <input type="text" name="pname">
    <input type="submit" name="valider">
</form>

`

1 Ответ

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

При миграции попробуйте это:

$table->integer('StudentID ')->nullable();
$table->foreign('StudentID')->references('id')->on('student');

, затем в консоли:

php artisan migrate:refresh

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