【发布时间】:2023-03-28 00:25:01
【问题描述】:
我正在构建一个包含多个用户的客户端列表的应用。每个用户都应该只能访问他们的客户列表。 (下一步是为用户添加允许其他用户访问其客户列表的能力)。
我已将应用设置为使用内置中间件保护列表。 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');
}
}
【问题讨论】:
-
请您用
ClientController@show的内容或/clients/{clients}路由的控制器更新您的问题?甚至可以插入您的Clients模型。
标签: laravel-5 laravel-5.1