我在html中有一个表单,其中包含名为restaurantName
的输入,但我在数据库中的列是name
。我无法在控制器中使用它
Restaurant::create(Input::only('restaurantName'));
因为没有restaurantName
列,所以我的问题是如何告诉laravel restaurantName
被绑定到name
?
html表单包含以下字段:
restaurantName
website
username
password
mobileNumber
firstName
lastName
数据库有两个表Admin
和Restaurant
,每个餐厅有一个管理员,每个餐厅的管理员都是一个,所以这是一对一的关系
当我提交表格时,我会执行以下操作:
$input = Input::all();
$admin = Admin::create(Input::only('username', 'password', 'mobileNumber', 'firstName', 'lastName'));
$data = ['name' , Input::get('restaurantName'), 'website' => Input::get('website')];
$restaurant = new Restaurant($data);
$admin->restaurant()->save($restaurant);
admin
行已插入数据库,因此问题以$data
行代码开头。
例外是:
BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::save()
答案 0 :(得分:3)
首先,你不应该盲目地将用户输入传递给模型,其次,这个特殊问题与laravel完全无关。
您的问题可以通过基本的PHP解决。简单地说,创建自己的输入数组。
$data = [
'field' => Input::get('field'),
'name' => Input::get('restaurantName')
];
似乎有一种严重的误解,认为Laravel是它自己的独立系统,事实并非如此。它实际上是PHP代码的集合,它不会做任何用PHP无法完成的事情,并且它不会阻止你做任何你通常用PHP做的事情。