Tôi đang phát triển một API bằng cách sử dụng Laravel để sử dụng với một ứng dụng di động và có một số vấn đề với tuyến đường mô hình ràng buộc trên các tuyến đường lồng nhau. Ứng dụng sẽ có một db sqlite độc lập sẽ đồng bộ hóa hành trình của khách hàng với máy chủ trung tâm khi mạng khả dụng. Vì lý do đó, PK trong ứng dụng không thể được sử dụng để truy cập vào các bản ghi trên máy chủ trung tâm. Mỗi người dùng sẽ có một tên người dùng độc đáo này sẽ được lưu trữ trên máy chủ trung tâm trong một bảng với các cột sau:Laravel lồng nhau mô hình tuyến đường ràng buộc
- user_id
- tên
Bảng cuộc hành trình sau đó sẽ có các cột sau:
- j ourney_id
- user_id
- user_journey_id
nơi user_journey_id
sẽ là PK của hồ sơ hành trình trên thiết bị của khách hàng. Ý tưởng là khách hàng có thể truy cập api bằng một cái gì đó như: http://example.com/api/client/UNIQUE_USERNAME/journey/1234 để truy xuất hành trình từ máy chủ trung tâm.
tôi có các thiết lập nguồn sau:
Route::resource('client','ClientController');
Route::resource('client.journey','JourneyController');
và có mô hình tuyến đường thiết lập ràng buộc thành công cho khách hàng như sau:
$router->bind('client', function($value, $route) {
return \App\Client::where('username', '=', $value)->firstOrFail();
});
Tôi đang gặp một chút rắc rối với việc thiết lập các mô hình lồng nhau ràng buộc khi tôi yêu cầu khách hàng username
kết hợp với user_journey_id
để truy lục hành trình chính xác. Có cách nào để làm điều này với mô hình tuyến đường ràng buộc?
Hoặc nên điều này chỉ được thực hiện trong bộ điều khiển với một số như:
public function show(Client $client, $user_journey_id)
{
... // have logic here to get the journey.
Đây là cách tôi làm điều đó hiện nhưng mô hình tuyến đường liên kết chắc chắn sẽ làm cho nó một chút dễ dàng hơn.
Thay vì sử dụng tên người dùng, bạn không thể chỉ sử dụng user_id để bạn không phải lồng ghép mô hình? – Billy