在laravel

时间:2017-10-16 09:07:35

标签: php laravel laravel-5.3

我想从我的数据库中获取数据,但是当我尝试从另一个表中获取数据时,我感到困惑。

这就是我想要做的,当用户登录网页时,他就能看到人名列表。通过单击他们的姓名,用户将被重定向到另一个页面,该页面将显示人员详细信息,例如姓名,地址和电子邮件。但因为有这么多(假设约200人)

问题:

Q1。如何将用户重定向到另一个名称的页面(例如:jack,用户点击插孔名称,jack id = 1,如何将其与user_id = 1相关联,这是外键)

Q2。我如何做一个循环来获取他们的信息,而不是逐个指定它(例如:我不想继续说id = 1,有没有像id ++那样有助于自动添加)

这就是我的代码的样子:(我从互联网上拍摄的图片,但它与此类似) enter image description here

home.blade.php

    <table class="table table-bordered">
      <tr>
        <th><strong><big>Name AS PER NRIC/PASSPORT: </big></strong></th>
      </tr>
      <td>
      <tr>
        @foreach($data as $value)
      <tr>    
      <th><a href="www.google.com"> {{$value->Name}}</a></th> --> I don't know how to redirect it to show user details              
      </tr>
        @endforeach
      </tr>
      </tr>
    </table>

控制器

public function index()
    {
        return view('home');
    }
    public function getData(){
        $data['data'] = DB::table('personal_infos')->get()->sortByDesc('upload_time');
        if(count($data)>0){
        return view('home',$data);
}else{
    return view('home');
}
}
}

路线

Route::get('/test','testController@getData');

personal_info模型

class personal_info extends Eloquent
{
    protected $fillable = array('Email', 'Name', 'address');
    protected $table = 'personal_infos';
    protected $primaryKey = 'id';
    public function user_infos() {
        return $this->hasMany('App\user_info,'user_id');
    }
        public function user_info1s() {
        return $this->hasMany('App\user_info1','user_id');
    }
}

user_info和user_info1模型

class user_info1 extends Eloquent
{
    protected $fillable = array('hobby','sport','user_id');
    public function personal_infos() {
        return $this->belongsTo('App\personal_info', 'user_id', 'id');
    }

2 个答案:

答案 0 :(得分:0)

首先添加像

这样的路线
Route::get('/test/{id}','testController@getPerson')->name("showPerson");

然后设置重定向

<a href="{{route('showPerson', $value)}}">

使用此行代替您的href =“www.google.com”

让testController中的getPerson()返回一个新页面,在该页面上打印出一个人的所有信息。

我还建议您使用谷歌Laracast并观看所有免费视频。他们大约30岁,他们让你很好地理解了laravel框架

答案 1 :(得分:0)

更改页面链接以将您重定向到详细信息页面:

<th><a href="{{route('user.show',['id'=>$value->id])}}"> {{$value->Name}}</a></th>
路线应该是:

Route::get('user/show/{id}','testController@getInfo')->name("user.show");

控制器应该是:

public function getInfo($id) {
  $user_info1 = user_info1::where('user_id',$id)->get();
  return $user_info1;//change this with your view
}