Php 拉威尔:我如何在一个控制器中访问两种不同型号的数据?

Php 拉威尔:我如何在一个控制器中访问两种不同型号的数据?,php,laravel,Php,Laravel,我正在尝试创建一个记录页面,页面显示学生记录。该记录将包括学生姓名(取自用户数据库)和课程名称(取自课程数据库)。现在我该怎么做呢。下面是我尝试过但不起作用的代码 srcontroller <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\User; use App\Course; class SRController extends Controller { /**

我正在尝试创建一个记录页面,页面显示学生记录。该记录将包括学生姓名(取自
用户数据库
)和课程名称(取自
课程数据库
)。现在我该怎么做呢。下面是我尝试过但不起作用的代码

srcontroller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use App\Course;

class SRController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $records = User::all(),Course::all();
        return view('records.index')->with('records', $records);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;

class UserAccountsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $accounts = User::all();
        return view('users.index')->with('accounts', $accounts);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('users.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request, [
            'acctyp'=>'required',
            'name'=>'required',
            'surname'=>'required',
            'gender'=>'required',
            'dob'=>'required',
            'email'=>'required',
            'userid'=>'required',
            'password'=>'required',
        ]);

        $account = new User;
        $account->acctyp = $request->input('acctyp');
        $account->name = $request->input('name');
        $account->surname = $request->input('surname');
        $account->gender = $request->input('gender');
        $account->dob = $request->input('dob');
        $account->email = $request->input('email');
        $account->userid = $request->input('userid');
        $account->password = bcrypt($request->input('password'));
        $account->save();

        return redirect('/users')->with('success', 'New user successfully added!');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $account = User::find($id);
        return view('users.show')->with('account', $account);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $account = User::find($id);
        return view('users.edit')->with('account', $account);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $this->validate($request, [
            'acctyp'=>'required',
            'name'=>'required',
            'surname'=>'required',
            'gender'=>'required',
            'dob'=>'required',
            'email'=>'required',
            'userid'=>'required',
            'password'=>'required',
        ]);

        $account = User::find($id);
        $account->acctyp = $request->input('acctyp');
        $account->name = $request->input('name');
        $account->surname = $request->input('surname');
        $account->gender = $request->input('gender');
        $account->dob = $request->input('dob');
        $account->email = $request->input('email');
        $account->userid = $request->input('userid');
        $account->password = bcrypt($request->input('password'));
        $account->save();

        return redirect('/users')->with('success', 'User successfully updated!');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $account = User::find($id);
        $account->delete();

        return redirect('/users')->with('success', 'User successfully removed!');
    }
}
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Course;

class CoursesController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $courses = Course::all();
        return view('subs.index')->with('courses', $courses);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('subs.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request,[
            'course_code'=>'required',
            'course_name'=>'required',
            'course_desc'=>'required',
        ]);

        $course = new Course;
        $course->course_code = $request->input('course_code');
        $course->course_name = $request->input('course_name');
        $course->course_desc = $request->input('course_desc');
        $course->save();

        return redirect('/subs')->with('success','New course added!');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $course = Course::find($id);
        return view('subs.show')->with('course', $course);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $course = Course::find($id);
        return view('subs.edit')->with('course',$course);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $this->validate($request,[
            'course_code'=>'required',
            'course_name'=>'required',
            'course_desc'=>'required',
        ]);

        $course = Course::find($id);
        $course->course_code = $request->input('course_code');
        $course->course_name = $request->input('course_name');
        $course->course_desc = $request->input('course_desc');
        $course->save();

        return redirect('/subs')->with('success','Course Updated!');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $course = Course::find($id);
        $course->delete();

        return redirect('/subs')->with('success', 'Course successfully removed!');
    }
}

在各个型号中指定
受保护的$connection
属性

您正在使用的模型将该表所在的数据库连接名放入其中

连接名称存在于
config
文件夹中的
database.php
文件中

也可以直接指定连接名称

 User::on('connection-name')->all();
注 而不是
$records=User::all(),Course::all()

更新

  return view('records.index')->with('records_user', $records_user)->with('records_course',$records_course);

在各个型号中指定
受保护的$connection
属性

您正在使用的模型将该表所在的数据库连接名放入其中

连接名称存在于
config
文件夹中的
database.php
文件中

也可以直接指定连接名称

 User::on('connection-name')->all();
注 而不是
$records=User::all(),Course::all()

更新

  return view('records.index')->with('records_user', $records_user)->with('records_course',$records_course);

您应该尝试以下代码:

public function index()
{
    $records = User::all();
    $course = Course::all();
    return view('records.index', compact('records', 'course'));
}
查看您的
if
查询的类似文件

<table>
<thead>
    <tr>
        <th>Id</th>
        <th>Student Name</th>
        <th>Course Major</th>
    </tr>
</thead>
<tbody>
    @if (count($records)>0)
        @foreach ($records as $record)
        @foreach ($course as $record)
        <tr>
            <td>{{$record->id}}</td>
            <td>{{$record->name}}</td>
            <td>{{$course->course_name}}</td> 
        </tr>
        @endforeach
        @endforeach 
    @else
        <tr>
            <td  colspan="3"> No Record found!!</td>
        </tr>
    @endif
</tbody>     
</table> 

身份证件
学名
课程专业
@如果(计数($records)>0)
@foreach($记录为$记录)
@foreach(课程为$record)
{{$record->id}
{{$record->name}
{{$course->course_name}
@endforeach
@endforeach
@否则
没有找到记录!!
@恩迪夫

您应该尝试以下代码:

public function index()
{
    $records = User::all();
    $course = Course::all();
    return view('records.index', compact('records', 'course'));
}
查看您的
if
查询的类似文件

<table>
<thead>
    <tr>
        <th>Id</th>
        <th>Student Name</th>
        <th>Course Major</th>
    </tr>
</thead>
<tbody>
    @if (count($records)>0)
        @foreach ($records as $record)
        @foreach ($course as $record)
        <tr>
            <td>{{$record->id}}</td>
            <td>{{$record->name}}</td>
            <td>{{$course->course_name}}</td> 
        </tr>
        @endforeach
        @endforeach 
    @else
        <tr>
            <td  colspan="3"> No Record found!!</td>
        </tr>
    @endif
</tbody>     
</table> 

身份证件
学名
课程专业
@如果(计数($records)>0)
@foreach($记录为$记录)
@foreach(课程为$record)
{{$record->id}
{{$record->name}
{{$course->course_name}
@endforeach
@endforeach
@否则
没有找到记录!!
@恩迪夫

这会使我能够从一个控制器访问两个表吗?@ProvidenceMoyo在一个控制器中使用多个模型没有任何限制。因此,我的问题是。如何在一个控制器中使用它们?这是我在
srcontroller
中使用的正确方法吗?现在这是我在控制器中的索引代码
public function index(){$records\u user=user::all();$records\u course=course::all();return view('records.index')->with('records',$records\u user)->with('records',$records\u course);}
@ProvidenceMoyo检查更新的答案并替换该行。这是否使我能够从一个控制器访问两个表?@ProvidenceMoyo在一个控制器中使用的型号数量没有任何限制。因此,我提出了问题。如何在一个控制器中使用它们?这是我在
srcontroller
中使用的正确方法吗?现在这是我在控制器中的索引代码
public function index(){$records\u user=user::all();$records\u course=course::all();return view('records.index')->with('records',$records\u user)->with('records',$records\u course);}
@ProvidenceMoyo检查更新的答案并替换该行。您有两个不同的数据库吗?或者一个数据库中有两个不同的表?同一数据库中有两个不同的表您有两个不同的数据库吗?或者在一个数据库中有两个不同的表?在同一个数据库中有两个不同的表