这要区分情况。如果属于住校生,学校有明确的纪律规定,不允许私自外出就餐和活动,避免出现不安全的状况如传染性疾病、食物中毒等,有保护你人身安全的理由,因此不违法。
如果是跑校生,学校不能强迫学生在校就餐。特别是学校离家近,孩子上学就很方便,家里的饭菜更有营养。学校应当同学生的父母或者其他监护人互相配合,征得家长的同意。
至于违反了法律的问题,学校这么做侵犯了学生的人身权利,侵害了学生的自主权。
《未成年人保护法》和《教育法》中都是有相关的规定。可以向当地教委反映。
如果学校食堂是对外承包的,《消费者权益保护法》中有明确规定:经营者与消费者进行交易,应当遵循自愿、平等、公平、诚实信用的原则,学校显然违背了这一原则。