我正在构建一个具有多个用户的客户端列表的应用程序。每个用户都应该只能访问他们的客户列表。(下一步是为用户添加允许其他用户访问其客户列表的能力)。
我设置了应用程序以使用内置中间件保护列表。URL /clients 仅显示经过身份验证的用户列表。但是,我无法弄清楚如何保护客户的详细信息。
我在客户端上使用 hasMany 设置了我的用户模型,并在用户上使用 belongsTo 设置了客户端。
如何保护 /clients/5 等 URL,其中 5 是我的数据库中的客户端 ID,并且 URL 显示客户端详细信息?目前,任何经过身份验证的用户都可以键入带有客户端 ID 的 url,并查看该客户端详细信息。如果需要,我可以发布代码。但是,我只是希望自己能找到正确的方向。
编辑 - 附加信息/代码
这是来自 ClientsController.php 的显示功能注释掉的位是解决此处发布的问题的失败尝试。
public function show($id)
{
//$client = \Auth::user()->clients()->get($id);
$client = Client::findOrFail($id);
return view('clients.show', compact('client'));
}
而且,我的客户模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class Client extends Model
{
protected $fillable = [
'bizName',
'bizStreet',
'bizCity',
'bizZip',
'bizEmail',
'bizPhone',
'bizNotes',
'user_id'
];
/**
* A client belongs to one user
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()
{
return $this->belongsTo('App\User');
}
}