im новичок в laravel. никогда раньше не работал с каркасом. Я создал базу данных с именем «tabletest». он имеет две таблицы. одна из них - таблица пользователей, а другая - таблица table.user для телефона имеет два столбца (идентификатор и имя). Телефонный стол имеет 3 столбца (id phone и user_id). то, что я пытался, я возьму ввод с помощью формы и отправлю входы в таблицы базы данных. хотя имена и телефоны были сохранены в разных таблицах правильно, user_id, который является столбцом внешнего ключа, не обновлялся. всегда было 0. Что мне теперь делать?Laravel 5.1 модель красноречивых отношений - как обновить колонку внешнего ключа?
файлов миграции являются:
пользователь таблице:
public function up()
{
Schema::create('user', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
телефон стол:
public function up()
{
Schema::create('phone', function (Blueprint $table) {
$table->increments('id');
$table->string('phone');
$table->unsignedInteger('user_id');
$table->timestamps();
});
}
модель Пользователь:
use App\Model\Phone;
class User extends Model
{
protected $table = "user";
protected $fillable = ['name'];
public function phone(){
return $this->hasOne(Phone::class);
}
}
Модель телефона:
use App\Model\User;
class Phone extends Model
{
protected $table = "phone";
protected $fillable = ['phone','user_id'];
public function user(){
return $this->belongsTo(User::class);
}
}
PhoneController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\model\User;
use App\model\Phone;
class PhoneController extends Controller
{
public function store(Request $request)
{
User::create([
'name' => $request->name
]);
Phone::create([
'phone' => $request->phone
]);
}
}
здесь скриншот телефона таблицы:
Ошибка ошибки в строке '' name '=> $ request-> input (' name '); 'в нем указано исключение фатальной ошибки в phonecontroller. синтаксическая ошибка, неожиданное ';', expecting ']' @pistachio –
Извините, отпустите ';' отдельно с ',' '' name '=> $ request-> input (' name '), ' – Pistachio
wow it работал: D спасибо u брат может у, пожалуйста, объясните мне эту строку '' name '=> $ request-> input (' name '), '? Я понимаю, что я беру атрибут имени из формы и помещаю его в объект $ user. & then u r используя '' user_id '=> $ user-> id; ', чтобы присвоить значение user_id из объекта $ user. то почему мне нужно указывать эти строки в моих моделях? 'public function user() { return $ this-> принадлежитTo (User :: class); } ' и ' public function phone() { return $ this-> hasOne (Phone :: class); } ' –