Multisite and accessing models that use Multisite Trait

Hi there,

I am using multisite on a custom plugin and have added the trait to the model.

    use \October\Rain\Database\Traits\Multisite;
    protected $propagatable = [];

All good there and the backend and frontend is working as expected.

However, if I try to use a route and make an endpoint for an API that returns the records, I can only access the primary site records:

Route::get('/myendpoint', function () {
        $data = MyModel::all();
        return $data;

Only returns primary site records.

I tried

Route::get('/myendpoint', function () {
        $data = MyModel::where('site_id','=','[alt site ID]')->get();
        return $data;

and also

Route::get('/[siteprefix]/myendpoint', function () {
        $data = MyModel::all();
        return $data;

but no luck.

I also tried this in the php section of a CMS page

function onStart(){
    $founddata = MyModel::where('site_id','=', '[primary site-ID]')->get();
    $nodatahere = MyModel::where('site_id','=', '[alt-site-ID]')->get();

And as expected if I changed the site URL to the alt site on the frontend I would get the alt-site data with this, but then lose all the primary site data.

Is there a way to query the site-specific records from a model. All I am trying to do is to copy some data from one site to another, so I need to access the two sets of records to do this.


Hi @roojai

Try adding this middleware to the route:


Hopefully it helps.


Yes, that helps a lot, thanks!