Я хочу показать данные только для определенного пользователя c, использующего Laravel - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь показать данные, относящиеся к пользователю, но, к сожалению, это не работает. В настоящее время, когда я отправляю заказ через форму, каждая учетная запись может видеть данные. Как я могу показать данные только для указанного c человека, который их предоставляет. Кто-нибудь есть идея, пожалуйста, помогите мне спасибо.

База данных

Таблица digitizing_orders таблица имеет

id | order_name | order_placement | user_id 

Digitizingorder Модель

class Digitizingorder extends Model
{
   protected $table = "digitizing_orders";

   public function user()
   {
      return $this->belongsTo('App\User');
   }
}

Модель пользователя

class User extends Authenticatable
{
   public function digitizing()
   {
      return $this->hasMany('App\Digitizingorder');
   }
}

Контроллер

public function index()
{ 
   $data = [
      'digitizings' => Digitizingorder::with('user')->where('id', '!=', Auth::id())->get()
   ];
   return view('front_end.Customerprofile.digitizing_view_order', $data);
}

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

использовать это в контроллере

$user = \Auth::guard('web')->user();
$data=
    [
        'digitizings'=> $user->digitizing
    ];

    return view('front_end.Customerprofile.digitizing_view_order',$data);

0 голосов
/ 27 апреля 2020

Использование Политики они могут защитить действия контроллера на модели от неавторизованных пользователей.

После создания и регистрации политики вы можете использовать его методы выглядят следующим образом:

class DigitizingorderPolicy
{
/**
 * Determine if the given Model can be Viewed by the user.
 *
 * @param  \App\User  $user
 * @param  \App\Digitizingorder $digitizingorder
 * @return bool
 */
public function view(User $user, Digitizingorder $digitizingorder)
{
    return $user->id === $digitizingorder->user_id;
}
}

Вы можете определить, что находится внутри метода, чтобы выполнить условие для просмотра пользователем модели (например, привилегии или роль).

Один из способов вызовите его в контроллере:

public function show(Request $request, Digitizingorder $digitizingorder )
{
    $this->authorize('view', $digitizingorder);

    // The current user can view the digitizingorder ...
}

Я предлагаю прочитать документы об этом, они являются несколькими способами / методами использования политик и могут содержать что-то полезное для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...