Laravel数据库和控制器问题

时间:2016-10-17 04:30:42

标签: php database laravel controller

我正在使用Laravel 5.3创建一个网站。数据库连接存在问题。我有2个独立的表,称为语言和文档 当我从这些表中检索数据时,问题就发生了。 这是我在语言控制器中的代码

use App\Languages;
use Illuminate\Support\Facades\DB;
class LanguageController extends Controller {
    public function getLanName(){
        $lans = Languages::all();
        return view('index',compact('lans'));
    }
}

这是语言模型的代码

namespace App;
use Illuminate\Database\Eloquent\Model;
class Languages extends Model{
    protected  $table = 'languages';
    public $timestamps = true;
    protected  $primaryKey = 'lan_id';
}

Document控制器和模型与语言相同

namespace App\Http\Controllers;
use App\Documents;
use Illuminate\Support\Facades\DB;
class DocumentController extends Controller{
    public function getDocName(){
        $docs = Documents::all();
            return view('index',compact('docs'));

    }
}

这是我的路线和视图中的一些html:

Route::get('/',['uses' => 'DocumentController@getDocName']);
Route::get('/',['uses' => 'LanguageController@getLanName']);

        <select >
                <option  >Select Document</option>
                @foreach($docs as $doc)
                    <option value="{{$doc->docName}}">{{$doc->docName}}    </option>
                @endforeach
            </select>  
            <select>
                <option >Select Language</option>
                @foreach($lans as $lan)
                    <option value="{{$lan->language}}">{{$lan->language}}</option>
                @endforeach
        </select>

我只能检索语言或文档。如果我评论语言或文档,另一个效果很好。我不能在同一路线中使用两个控制器吗?

非常感谢帮助......

1 个答案:

答案 0 :(得分:4)

不,这是不可能的。您不能将两个单独的控制器绑定到单个路径。人们甚至可以说这是非常糟糕的做法。您可以为此单个页面创建类似OverviewController的内容,只需在控制器方法中调用2个模型。

您还可以使用存储库,在此处回答: https://stackoverflow.com/a/26092119