如何在Laravel中为数据创建控制器?

时间:2018-07-03 13:40:49

标签: php laravel laravel-5

这是该模型的当前代码:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Courses extends Model
{
    protected $table = 'courses';

    foreach ($courses as $course) {
        echo $course->course;
    }
}

此代码是否正确编码?正在从“课程”表中获取数据,“课程”是该列的名称。

我正在向搜索目录添加新功能。概要文件包含来自数据库的变量,因此从同一数据库表中提取了很多数据。但是,有一个数据要放入单独的表中,因为它不能与其他数据放在同一张表中。因此,我必须找出一种从其他数据库表中获取数据并将其放入配置文件代码中的方法。

以下是个人资料页面的控制器(控制视图的代码段):

//view school
public function viewschool ($url){
   $url ='schools/' . $url;
    if (count(School::where('url', '=', $url)->first()) <> 1 ) {
        return redirect()->back();
    }

    $sch = School::where('url', '=', $url)->first();
    $articles = posts::where('post_type','article')->where('school',$sch->name)->take(3)->get();
    $news = posts::where('post_type','news')->where('school',$sch->name)->take(3)->get();
    $others = posts::where('post_type','news')->take(3)->get();

    return view('school-info')
        ->with(array('sch' => $sch,'school_articles' => $articles,'school_news' => $news,'others' => $others));
}

新数据是学校课程。课程数据库表包含学校ID列(基本上,课程会与学校表中它们所属的学校名称的ID相匹配)以及其他数据,例如课程持续时间和学费。

我想知道如何为学校课程创建控制器代码吗?

1 个答案:

答案 0 :(得分:1)

因此,首先请您进一步了解Laravel中的模型。您只需在那里定义类的属性。 foreach完全不合适。

示例模型应如下所示:

<?php
 namespace App;

 use Illuminate\Database\Eloquent\Model;

 class Course extends Model 
 {

 protected $table = 'courses';

 protected $fillable = ['properties'];

 }

因此,您将从“新鲜”开始并准备使用Model。您在控制器内部执行的模型操作。但是您可以在存储库中进行数据库查询。

现在关于您的问题:

您可以通过例如在模型中定义关系。

protected $searchable = 
[
     'relations' => [
            'schools' => [
                  'foreignKey' => 'school_id',
                  'foreignField' => 'courses'
                          ]
                     ]
]

编辑:忘记了模型内部的方法:D

public function schools(): BelongsTo
{
  return $this->belongsTo(Schools::class);
}