我正在使用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>
我只能检索语言或文档。如果我评论语言或文档,另一个效果很好。我不能在同一路线中使用两个控制器吗?
非常感谢帮助......
答案 0 :(得分:4)
不,这是不可能的。您不能将两个单独的控制器绑定到单个路径。人们甚至可以说这是非常糟糕的做法。您可以为此单个页面创建类似OverviewController的内容,只需在控制器方法中调用2个模型。
您还可以使用存储库,在此处回答: https://stackoverflow.com/a/26092119