我有通常的资源UserController
UserController extends Controller {
public function index() { /**... some code */ }
public function store(Request $request) { /**... some code */ }
public function show(User $user) { /**... some code */ }
public function update(Request $request, User $user) { /**... some code */ }
public function destroy(User $user) { /**... some code */ }
}
User extends Model {
protected $fillable = [ 'name', 'email'];
}
我有一个子资源ContactController
ContactController extends Controller {
public function index(User $user) { /**... some code */ }
public function store(Request $request, User $user) { /**... some code */ }
public function show(User $user, Contact $contact) { /**... some code */ }
public function update(Request $request, User $user, Contact $contact) { /**... some code */ }
public function destroy(User $user, Contact $contact) { /**... some code */ }
}
Contact extends Model {
protected $fillable = [ 'phones', 'user_id' ];
}
在我的route.php中
Route::apiResource('users', 'UserController');
Route::apiResource('users.contacts', 'ContactController');
就我而言,我只能为用户创建一个思想API。 提出要求
POST api / users / 12 / contacts 之后,我可以获取此联系人 获取api / users / 12 / contacts / 11 客户可以使用 POST api / users / 12 / contacts 来创建尽可能多的联系人。但是我的用户只能有一个联系人。
实际上,我可以通过添加验证来解决此问题,但我认为此技巧无法正确解决问题