Php 如何仅显示当前登录用户-Laravel的检查表

Php 如何仅显示当前登录用户-Laravel的检查表,php,authentication,laravel,logged,Php,Authentication,Laravel,Logged,代码$checklist->user\u id=Auth::user()->user\u id;将当前登录用户的用户id存储在检查表中 在主页上,我想查看当前登录用户的清单,而不是所有用户的清单。我似乎找不到正确的代码 检查表 CREATE TABLE IF NOT EXISTS `festival_aid`.`checklists` ( `checklist_id` BIGINT NOT NULL AUTO_INCREMENT, `checklist_body` VARCHAR(45)

代码$checklist->user\u id=Auth::user()->user\u id;将当前登录用户的用户id存储在检查表中

在主页上,我想查看当前登录用户的清单,而不是所有用户的清单。我似乎找不到正确的代码

检查表

CREATE TABLE IF NOT EXISTS `festival_aid`.`checklists` (
  `checklist_id` BIGINT NOT NULL AUTO_INCREMENT,
  `checklist_body` VARCHAR(45) NOT NULL,
  `checklist_created` TIMESTAMP NOT NULL,
  `checklist_modified` TIMESTAMP NULL,
  `checklist_deleted` TIMESTAMP NULL,
  `user_id` BIGINT NOT NULL,
  PRIMARY KEY (`checklist_id`),
  INDEX `fk_checklists_users_idx` (`user_id` ASC),
  CONSTRAINT `fk_checklists_users`
    FOREIGN KEY (`user_id`)
    REFERENCES `festival_aid`.`users` (`user_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
用户表

CREATE TABLE IF NOT EXISTS `festival_aid`.`users` (
  `user_id` BIGINT NOT NULL AUTO_INCREMENT,
  `user_username` VARCHAR(45) NOT NULL,
  `user_email` VARCHAR(255) NOT NULL,
  `user_password` VARCHAR(255) NOT NULL,
  `user_salt` CHAR(32) NULL,
  `user_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `user_modified` TIMESTAMP NULL,
  `user_deleted` TIMESTAMP NULL,
  `user_lastlogin` TIMESTAMP NULL,
  `user_locked` TIMESTAMP NULL,
  `user_token` VARCHAR(128) NULL,
  `user_confirmed` TIMESTAMP NULL,
  PRIMARY KEY (`user_id`),
  UNIQUE INDEX `user_email_UNIQUE` (`user_email` ASC),
ENGINE = InnoDB;
HomeController的索引操作

public function getIndex()
{
    $checklist = Checklist::all();

    return View::make('home.index')
        ->with('checklist', $checklist);
}
public function store()
    {
        $input = Input::all();

        $rules = array(
            'checklist_body' => 'required'
        );
        $validator = Validator::make($input, $rules);

        if($validator->passes())
        {
            $checklist = new Checklist();

            $checklist->user_id = Auth::user()->user_id;
            $checklist->checklist_body = $input['checklist_body'];

            $checklist->save();

            Session::flash('message', 'Successfully created a checklist!');
            return Redirect::to('checklists');
        }
        else {
            return Redirect::to('checklists/create')->withInput()->withErrors($validator);
        }
    }
存储来自ChecklistController的操作

public function getIndex()
{
    $checklist = Checklist::all();

    return View::make('home.index')
        ->with('checklist', $checklist);
}
public function store()
    {
        $input = Input::all();

        $rules = array(
            'checklist_body' => 'required'
        );
        $validator = Validator::make($input, $rules);

        if($validator->passes())
        {
            $checklist = new Checklist();

            $checklist->user_id = Auth::user()->user_id;
            $checklist->checklist_body = $input['checklist_body'];

            $checklist->save();

            Session::flash('message', 'Successfully created a checklist!');
            return Redirect::to('checklists');
        }
        else {
            return Redirect::to('checklists/create')->withInput()->withErrors($validator);
        }
    }
用户模型

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface  {

    protected $table = 'users';

    protected $primaryKey = 'user_id';

    protected $hidden = ["password"];

    public function getAuthIdentifier()
    {
        return $this->getKey();
    }

    public function getAuthPassword()
    {
        return $this->user_password;
    }

    public function getReminderEmail()
    {
        return $this->email;
    }

    public $timestamps = false;

    public function location()
    {
        return $this->belongsTo('Location', 'location_id', 'location_id');
    }

    public function person()
    {
        return $this->belongsTo('Person', 'person_id', 'person_id');
    }

    public function checklist()
    {
        return $this->belongsTo('Checklist', 'checklist_id', 'checklist_id');
    }
}
检查表模型

class Checklist extends Eloquent {
    protected $guarded = array();

    public static $rules = array();

    protected $primaryKey = 'checklist_id';

    public $timestamps = false;

    public function user()
    {
        return $this->hasMany('Checklist', 'checklist_id', 'checklist_id');
    }

}
主视图

@extends('layouts.master')
@section('content')
@if(Auth::user())
Welcome {{ ucwords(Auth::user()->user_username) }} in the backoffe off Festival Aid!
<table class="table table-striped table-bordered">
    <thead>
    <tr>
        <td>ID</td>
        <td>Body</td>
        <td>Created</td>
    </tr>
    </thead>
    <tbody>
    @foreach($checklist as $checklist)
    <tr>
        <td>{{ $checklist->checklist_id }}</td>
        <td>{{ $checklist->checklist_body }}</td>
        <td>{{ $checklist->checklist_created }}</td>
        <td>
            {{ Form::open(array('url' => 'checklists/' . $checklist->checklist_id, 'class' => 'pull-right')) }}
            {{ Form::hidden('_method', 'DELETE') }}
            {{Form::button('<i class="glyphicon glyphicon-remove"></i>', array('type' => 'submit', 'class' => ''))}}
            {{ Form::close() }}

            <a class="" href="{{ URL::to('checklists/' . $checklist->checklist_id) }}"><i class="glyphicon glyphicon-user"></i></a>

            <a class="" href="{{ URL::to('checklists/' . $checklist->checklist_id . '/edit') }}"><i class="glyphicon glyphicon-edit"></i></a>

        </td>
    </tr>
    @endforeach
    </tbody>
</table>
@else
<p>Welcome in de backoffe van Festival Aid!</p>
<p>Gelieve in te loggen.</p>
@endif

@stop
@extends('layouts.master'))
@节(“内容”)
@if(Auth::user())
欢迎{{ucwords(Auth::user()->user_username)}}进入backoffe off Festival Aid!
身份证件
身体
创建
@foreach($checklist作为$checklist)
{{$checklist->checklist_id}
{{$checklist->checklist_body}
{{$checklist->checklist_created}
{Form::open(数组('url'=>'检查表/'.$checklist->checklist_id,'class'=>'向右拉'))}
{{Form::hidden(''u method','DELETE')}
{{表单::按钮('',数组('type'=>'submit','class'=>'')}
{{Form::close()}}
@endforeach
@否则
欢迎来到de backoffe van Festival Aid

格丽芙在洛根

@恩迪夫 @停止
我认为您可能搞乱了用户和检查表之间的关系:

$user->checklist()应该是hasMany而不是belongsTo$清单->用户()应为以下内容:

有关执行的SQL语句,请参见一对一文档,这在一对多关系中几乎相同:

在控制器中,您可以使用:

$checklists = Auth::user()->checklists();

请注意,我编写了检查表(复数),因为当您希望返回一个或多个项目时,这是有意义的。

我明白了,但问题不在于数据库表。在你的模型里。清单有一个用户id,所以你可以说它“属于”一个用户。因此,清单模型中的user()方法中的belongsTo()是。这有意义吗?遗憾的是,当我更改关系时,没有一个URL会打开。你应该检查你的Web服务器日志文件,看看有什么问题。Damien Pirsy之前有一个解决方案,但我认为他删除了它:/I我想他的解决方案是放(类似于)
$checklist=checklist::where('user_id',Auth::user()->id)->get()在控制器中。但这并不能解决关系问题。
public function getIndex()
{
    $checklist = Checklist::where('user_id', Auth::user()->user_id)->get();

    return View::make('home.index')
        ->with('checklist', $checklist);
}