如何在Laravel 5.1中使用资源控制器时绑定模型对象

时间:2016-10-05 07:26:55

标签: php eloquent laravel-5.1

我正在寻找的是类似的东西

public function store(Help $help)
{
    $help->save();

    return response
}

我添加的模型类是Routes.php这样的文件

Route::model('help', 'App\Help');
Route::resource('api/help', 'HelpController');

这是我的Help.php文件

class Help extends Model
{
    use SoftDeletes;

    protected $primaryKey = 'id';

    protected $table = 'help';

    protected $dates = ['deleted_at'];

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = array('name','description','deleted_at','created_at', 'updated_at');

}

绑定发生在一定程度上,即表中有一个新行,但属性" name"和"描述"是空的。

1 个答案:

答案 0 :(得分:0)

我认为你误解了路线模型绑定概念......

我认为,你真正想要的是这样的:

public function store(Illuminate\Http\Request $request)
{
    $help = new Help($request->all());
    $help->save();

    return back()->with('success', true);
}

路径模型绑定更有可能用于更新方法,因为您拥有模型的现有实例,您可以使用。

例如:

public function update(Illuminate\Http\Request $request , Help $help) {
    // help exists and the correct model instance is automatically resolved through route model binding...
    $help->fill( $request->all() );
    $help->save();

    return redirect()->back()->with( 'updated', true );
}

您可以运行命令

php artisan route:list

检查路径模型绑定的使用位置。您在{}中看到的变量 比如{help}